Anda dapat menemukan berbagai jenis blok non-lokal di lib/ .
Anda dapat memvisualisasikan peta perhatian non_local dengan mengikuti langkah -langkah berjalan yang ditunjukkan di bawah ini.
Kode diuji pada dataset MNIST. Anda dapat memilih jenis blok non-lokal di lib/network.py .
Jika ada yang salah dalam kode saya, silakan hubungi saya, terima kasih!










Pilih jenis blok non-lokal di 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
Jalankan demo_mnist_train.py dengan satu GPU atau multi GPU untuk melatih jaringan. Maka bobot akan menghemat bobot/ .
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
Jalankan nl_map_save.py untuk menyimpan nl_map dari satu sampel uji di nl_map_vis .
CUDA_VISIBLE_DEVICES=0,1 python nl_map_save.py
Datanglah ke nl_map_vis/ dan jalankan nl_map_vis.py untuk memvisualisasikan nl_map. (Tips: Jika jenis non-lokal yang Anda pilih adalah non_local_concatenation atau non_local_dot_product (tanpa operasi softmax), Anda mungkin perlu menormalkan NL_MAP dalam kode visualisasi)
python nl_map_save.py
Cari tahu cara mengimplementasikan jenis gabungan , dan tambahkan kode ke lib/ .
Perbaiki bug di lib/non_local.py (versi lama) saat menggunakan multi-GPU. Seseorang membagikan alasannya dengan saya, dan Anda dapat menemukannya di sini.
Perbaiki kesalahan pengumpulan 3D di lib/non_local.py (versi lama). Hargai protein27 karena menunjukkannya.
Untuk kenyamanan, saya membagi lib/non_local.py menjadi empat file python, dan memindahkan versi lama ( lib/non_loca.py dan lib/non_local_simple_version.py ) menjadi lib/cadangan/ .
Ubah kode untuk mendukung pytorch 0.4.1, dan pindahkan kode yang mendukung pytorch 0.3.1
ke non-local_pytorch_0.3.1/ .
Uji kode dengan Pytorch 1.1.0 dan berfungsi.
Pindahkan kode yang mendukung pytorch 0.4.1 dan 1.1.0 ke non-local_pytorch_0.4.1_to_1.1.0/ (sebenarnya, saya pikir itu juga dapat mendukung Pytorch 1.2.0).
Untuk memvisualisasikan NL_MAP, beberapa kode telah sedikit dimodifikasi. Kode nl_map_save.py ditambahkan untuk menyimpan nl_map (dua lapisan non-lokal) dari satu sampel uji. Kode non-local_pytorch/nl_map_vis.py ditambahkan untuk memvisualisasikan nl_map. Bunctied, kodenya mendukung Pytorch 1.2.0.
Kode ini juga berfungsi dengan baik di Pytorch 1.4.0 .
Kode ini juga berfungsi dengan baik di Pytorch 1.6.0 . Tambahkan demo_mnist_amp_train_with_single_gpu.py dengan pelatihan presisi campuran otomatis (FP16), didukung oleh Pytorch 1.6.0 . Ini dapat mengurangi memori GPU selama pelatihan. Terlebih lagi, jika Anda menggunakan GPU 2080Ti (inti tensor), kecepatan pelatihan dapat ditingkatkan. Rincian lebih lanjut (seperti cara berlatih dengan beberapa GPU) dapat ditemukan di sini
Pastikan kode bekerja dengan baik di Pytorch 1.7.0 .
Pastikan kode bekerja dengan baik di Pytorch 1.8.1 .
Pastikan kode bekerja dengan baik di Pytorch 1.9.0 .
Pastikan kode bekerja dengan baik di Pytorch 1.10.1 .
Pastikan kode bekerja dengan baik di Pytorch 1.11.0 .
Pastikan kode bekerja dengan baik di Pytorch 1.12.0 .
Hapus redundan kode net.train() dalam file kode pelatihan.
Pastikan kode berfungsi dengan baik di Pytorch 1.13.0 dan 2.0.0 .