คุณสามารถค้นหาบล็อกที่ไม่ใช่ท้องถิ่นต่าง ๆ ใน LIB/
คุณสามารถ เห็น ภาพแผนที่ความสนใจที่ไม่ใช่ _local โดยทำตาม ขั้นตอนการทำงาน ที่แสดงด้านล่าง
รหัสถูกทดสอบในชุดข้อมูล MNIST คุณสามารถเลือกประเภทของบล็อกที่ไม่ใช่ท้องถิ่นใน lib/network.py
หากมีบางอย่างผิดปกติในรหัสของฉันโปรดติดต่อฉันขอบคุณ!










เลือกประเภทของบล็อกที่ไม่ใช่ท้องถิ่นใน lib/network.py
from lib.non_local_concatenation import NONLocalBlock2D
from lib.non_local_gaussian import NONLocalBlock2D
from lib.non_local_embedded_gaussian import NONLocalBlock2D
from lib.non_local_dot_product import NONLocalBlock2D
เรียกใช้ demo_mnist_train.py ด้วยหนึ่ง GPU หรือ Multi GPU เพื่อฝึกอบรมเครือข่าย จากนั้นน้ำหนักจะได้รับการประหยัดใน น้ำหนัก/
CUDA_VISIBLE_DEVICES=0,1 python demo_MNIST_train.py
# Or train with Automatic Mixed Precision based on pytorch 1.6.0
CUDA_VISIBLE_DEVICES=0 python demo_MNIST_AMP_train_with_single_gpu.py
เรียกใช้ nl_map_save.py เพื่อบันทึก NL_MAP ของตัวอย่างทดสอบหนึ่งตัวอย่างใน NL_MAP_VIS
CUDA_VISIBLE_DEVICES=0,1 python nl_map_save.py
เข้ามาใน NL_MAP_VIS/ และเรียกใช้ NL_MAP_VIS.py เพื่อให้เห็นภาพ NL_MAP (เคล็ดลับ: หากประเภทที่ไม่ใช่ท้องถิ่นที่คุณเลือกคือ non_local_concatenation หรือ non_local_dot_product (โดยไม่ต้องดำเนินการ softmax) คุณอาจต้องทำให้ NL_MAP เป็นปกติในรหัสการแสดงภาพ)
python nl_map_save.py
หาวิธีการใช้ประเภท การเชื่อมต่อ และเพิ่มรหัสลงใน lib/
แก้ไขข้อผิดพลาดใน lib/non_local.py (รุ่นเก่า) เมื่อใช้ multi-gpu มีคนแบ่งปันเหตุผลกับฉันและคุณสามารถค้นหาได้ที่นี่
แก้ไขข้อผิดพลาดของการรวม 3D ใน lib/non_local.py (เวอร์ชันเก่า) ชื่นชม Protein27 ที่ชี้ให้เห็น
เพื่อความสะดวกฉันแบ่ง lib/non_local.py ออกเป็นสี่ไฟล์ python และย้ายรุ่นเก่า ( lib/non_loca.py และ lib/non_local_simple_version.py ) ลงใน lib/backup/
แก้ไขรหัสเพื่อรองรับ pytorch 0.4.1 และย้ายรหัสที่รองรับ pytorch 0.3.1
ถึง ไม่ใช่ local_pytorch_0.3.1/
ทดสอบรหัสด้วย pytorch 1.1.0 และใช้งานได้
ย้ายรหัสที่รองรับ pytorch 0.4.1 และ 1.1.0 ไปยัง non-local_pytorch_0.4.1_to_1.1.0/ (อันที่จริงฉันคิดว่ามันสามารถรองรับ Pytorch 1.2.0)
เพื่อให้เห็นภาพ NL_MAP บางรหัสได้รับการแก้ไขเล็กน้อย รหัส NL_MAP_SAVE.py ถูกเพิ่มเพื่อบันทึก NL_MAP (สองชั้นที่ไม่ใช่ท้องถิ่น) ของตัวอย่างทดสอบหนึ่งตัวอย่าง รหัส non-local_pytorch/nl_map_vis.py ถูกเพิ่มลงในการแสดงภาพ NL_MAP Besieds รหัสนี้รองรับ Pytorch 1.2.0
รหัสยังทำงานได้ดีใน Pytorch 1.4.0
รหัสยังทำงานได้ดีใน Pytorch 1.6.0 เพิ่ม demo_mnist_amp_train_with_single_gpu.py ด้วยการฝึกอบรมความแม่นยำแบบผสมอัตโนมัติ (FP16) รองรับโดย Pytorch 1.6.0 มันสามารถลดหน่วยความจำ GPU ในระหว่างการฝึกอบรม ยิ่งไปกว่านั้นถ้าคุณใช้ GPU 2080TI (แกนเทนเซอร์) ความเร็วในการฝึกอบรมสามารถเพิ่มขึ้นได้ รายละเอียดเพิ่มเติม (เช่นวิธีการฝึกด้วย GPU หลายตัว) สามารถพบได้ที่นี่
ตรวจสอบว่ารหัสทำงานได้ดีใน Pytorch 1.7.0
ตรวจสอบว่ารหัสทำงานได้ดีใน Pytorch 1.8.1
ตรวจสอบว่ารหัสทำงานได้ดีใน Pytorch 1.9.0
ตรวจสอบว่ารหัสทำงานได้ดีใน Pytorch 1.10.1
ตรวจสอบว่ารหัสทำงานได้ดีใน Pytorch 1.11.0
ตรวจสอบว่ารหัสทำงานได้ดีใน Pytorch 1.12.0
ลบรหัส net.train() ซ้ำซ้อนในไฟล์รหัสการฝึกอบรม
ตรวจสอบว่ารหัสทำงานได้ดีใน Pytorch 1.13.0 และ 2.0.0