Ini adalah implementasi PyTorch dari makalah kami "Konvolusi Piramida: Memikirkan Kembali Jaringan Syaraf Konvolusional untuk Pengenalan Visual". (Perhatikan bahwa ini adalah kode untuk pengenalan gambar di ImageNet. Untuk segmentasi/parsing gambar semantik, lihat repositori ini: https://github.com/iduta/pyconvsegnet)
Model yang dilatih di ImageNet dapat ditemukan di sini.
PyConv mampu memberikan kemampuan pengenalan yang lebih baik dibandingkan baseline (lihat makalah untuk detailnya).
Akurasi pada ImageNet (menggunakan pengaturan pelatihan default):
Jaringan | 50 lapisan | 101 lapisan | 152 lapisan |
---|---|---|---|
ResNet | 76,12% (model) | 78,00% (model) | 78,45% (model) |
PyConvHGResNet | 78,48 % (model) | 79,22 % (model) | 79,36 % (model) |
PyConvResNet | 77,88 % (model) | 79,01 % (model) | 79,52 % (model) |
Akurasi pada ImageNet dapat ditingkatkan secara signifikan menggunakan pengaturan pelatihan yang lebih kompleks (misalnya, menggunakan augmentasi data tambahan (CutMix), meningkatkan ukuran bach menjadi 1024, kecepatan pembelajaran 0,4, penjadwal kosinus lebih dari 300 periode, dan menggunakan presisi campuran untuk mempercepat pelatihan ):
Jaringan | pemangkasan uji: 224×224 | pemangkasan uji: 320×320 | |
---|---|---|---|
PyConvResNet-50 (+tambahan) | 79.44 | 80,59 | (model) |
PyConvResNet-101 (+tambahan) | 80,58 | 81.49 | (model) |
Instal kumpulan data PyTorch dan ImageNet mengikuti kode pelatihan resmi PyTorch ImageNet.
Alternatif cepat (tanpa perlu menginstal PyTorch dan perpustakaan pembelajaran mendalam lainnya) adalah dengan menggunakan NVIDIA-Docker, kami menggunakan gambar kontainer ini.
Untuk melatih model (misalnya, PyConvResNet dengan 50 lapisan) menggunakan DataParallel, jalankan main.py
; Anda juga perlu menyediakan result_path
(jalur direktori tempat menyimpan hasil dan log) dan --data
(jalur ke kumpulan 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
Untuk berlatih menggunakan Pelatihan Paralel Data Terdistribusi Multi-pemrosesan, ikuti instruksi dalam kode pelatihan resmi PyTorch ImageNet.
Jika Anda merasa karya kami bermanfaat, mohon pertimbangkan untuk mengutip:
@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},
}