lib/ 에서 다른 종류의 비 지역형 블록을 찾을 수 있습니다.
아래에 표시된 실행 단계를 따라 Non_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
네트워크를 훈련시키기 위해 하나의 GPU 또는 멀티 GPU로 demo_mnist_train.py를 실행하십시오. 그러면 무게는 무게/ 로 절약됩니다.
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_vis 에서 하나의 테스트 샘플의 nl_map을 저장하십시오.
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/ 에 추가하십시오.
Multi-GPU를 사용할 때는 lib/non_local.py (이전 버전)에서 버그를 수정하십시오. 누군가가 나와 이유를 공유하고 여기에서 찾을 수 있습니다.
lib/non_local.py (이전 버전)에서 3D 풀링 오류를 수정하십시오. 그것을 지적 한 Protein27 에 감사합니다.
편의를 위해 lib/non_local.py를 4 개의 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을 지원하는 코드를 비 -local_pytorch_0.4.1_to_1.1.0/ 로 이동하십시오 (실제로 Pytorch 1.2.0을 지원할 수도 있다고 생각합니다).
NL_MAP를 시각화하기 위해 일부 코드가 약간 수정되었습니다. 코드 NL_MAP_SAVE.PY 코드는 하나의 테스트 샘플의 NL_MAP (2 개의 비 로컬 레이어)를 저장하기 위해 추가됩니다. NL_MAP를 시각화하기 위해 코드 non-local_pytorch/nl_map_vis.py가 추가됩니다. 이 코드는 Pytorch 1.2.0을 지원합니다.
이 코드는 Pytorch 1.4.0 에서도 잘 작동합니다.
이 코드는 Pytorch 1.6.0 에서도 잘 작동합니다. Pytorch 1.6.0 에서 지원하는 자동 혼합 정밀 훈련 (FP16)을 사용하여 Demo_mnist_amp_train_with_single_gpu.py를 추가하십시오. 훈련 중에 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 에서 잘 작동하는지 확인하십시오.
교육 코드 파일에서 Code net.train() 중복 제거하십시오.
코드가 Pytorch 1.13.0 및 2.0.0 에서 잘 작동하는지 확인하십시오.