이것은 우리 논문 "Pyramidal Convolution: Rethinking Convolutional Neural Networks for Visual Recognition"의 PyTorch 구현입니다. (이것은 ImageNet의 이미지 인식을 위한 코드입니다. 의미론적 이미지 분할/파싱에 대해서는 이 저장소를 참조하십시오: https://github.com/iduta/pyconvsegnet)
ImageNet에서 훈련된 모델은 여기에서 찾을 수 있습니다.
PyConv는 기준선에 비해 향상된 인식 기능을 제공할 수 있습니다(자세한 내용은 논문 참조).
ImageNet의 정확도(기본 교육 설정 사용):
회로망 | 50층 | 101층 | 152층 |
---|---|---|---|
레스넷 | 76.12% (모델) | 78.00% (모델) | 78.45% (모델) |
PyConvHGresNet | 78.48 % (모델) | 79.22 % (모델) | 79.36 %(모델) |
PyConvResNet | 77.88 % (모델) | 79.01 % (모델) | 79.52 %(모델) |
ImageNet의 정확도는 보다 복잡한 훈련 설정을 사용하여 크게 향상될 수 있습니다(예: 추가 데이터 확대(CutMix) 사용, 바흐 크기를 1024로 늘리기, 학습률 0.4, 300 에포크 이상의 코사인 스케줄러 및 혼합 정밀도를 사용하여 훈련 속도 향상) ):
회로망 | 테스트 자르기: 224×224 | 테스트 자르기: 320×320 | |
---|---|---|---|
PyConvResNet-50(+증강) | 79.44 | 80.59 | (모델) |
PyConvResNet-101(+증강) | 80.58 | 81.49 | (모델) |
공식 PyTorch ImageNet 교육 코드에 따라 PyTorch 및 ImageNet 데이터세트를 설치합니다.
빠른 대안(PyTorch 및 기타 딥 러닝 라이브러리를 설치할 필요 없음)은 NVIDIA-Docker를 사용하는 것입니다. 우리는 이 컨테이너 이미지를 사용했습니다.
DataParallel을 사용하여 모델(예: 50개의 레이어가 있는 PyConvResNet)을 훈련하려면 main.py
실행하세요. 또한 result_path
(결과와 로그를 저장할 디렉터리 경로) 및 --data
(ImageNet 데이터 세트의 경로)를 제공해야 합니다.
result_path=/your/path/to/save/results/and/logs/
mkdir -p ${result_path}
python main.py
--data /your/path/to/ImageNet/dataset/
--result_path ${result_path}
--arch pyconvresnet
--model_depth 50
다중 처리 분산 데이터 병렬 훈련을 사용하여 훈련하려면 공식 PyTorch ImageNet 훈련 코드의 지침을 따르십시오.
우리의 작업이 유용하다고 생각되면 다음을 인용해 보십시오.
@article{duta2020pyramidal,
author = {Ionut Cosmin Duta and Li Liu and Fan Zhu and Ling Shao},
title = {Pyramidal Convolution: Rethinking Convolutional Neural Networks for Visual Recognition},
journal = {arXiv preprint arXiv:2006.11538},
year = {2020},
}