Implementasi ShuffleNet
di PyTorch. ShuffleNet
adalah arsitektur jaringan saraf konvolusional yang efisien untuk perangkat seluler. Menurut makalah tersebut, kinerjanya mengungguli MobileNet Google dengan persentase yang kecil.
Singkatnya, ShuffleNet
adalah model mirip ResNet yang menggunakan blok sisa (disebut ShuffleUnits
), dengan inovasi utamanya adalah penggunaan konvolusi grup pointwise, atau 1x1, dibandingkan dengan konvolusi pointwise normal.
Kloning repo:
git clone https://github.com/jaxony/ShuffleNet.git
Gunakan model yang ditentukan dalam model.py
:
from model import ShuffleNet
# running on MNIST
net = ShuffleNet ( num_classes = 10 , in_channels = 1 )
Dilatih di ImageNet (menggunakan contoh PyTorch ImageNet) dengan groups=3
dan tanpa pengganda saluran. Pada set pengujian, mendapat 62,2% top 1 dan 84,2% top 5. Sayangnya, ini tidak sebanding dengan Tabel 5 makalah, karena mereka tidak menjalankan jaringan dengan pengaturan ini, tetapi berada di antara jaringan dengan groups=3
dan setengah jumlah saluran (42,8% teratas 1) dan jaringan dengan jumlah saluran yang sama tetapi groups=8
(32,4% teratas 1). Kamus negara bagian yang telah dilatih sebelumnya dapat ditemukan di sini, dalam format berikut:
{
'epoch': epoch + 1,
'arch': args.arch,
'state_dict': model.state_dict(),
'best_prec1': best_prec1,
'optimizer' : optimizer.state_dict()
}
Catatan: dilatih dengan pengaturan ImageNet default, yang sebenarnya berbeda dari rezim pelatihan yang dijelaskan di makalah. Menunggu dijalankan kembali dengan pengaturan tersebut (dan groups=8
).