Altifigence Academy

1 / 24 · Konsep

Inferensi dan pelatihan

Jika hanya kanal keluaran bertambah dari tiga menjadi enam, bagaimana jumlah MAC dan jumlah bias tersimpan berubah?

Definisikan perhitungan sebelum jalur data

Inferensi menerapkan bobot tetap yang telah dipilih sebelumnya pada masukan dalam lintasan maju. Pelatihan juga menghitung kerugian, mempropagasikan gradien, dan memperbarui bobot. Karena itu, rangkaian yang melakukan konvolusi maju menunjukkan operasi inferensi; rangkaian itu sendiri tidak menunjukkan pelatihan. Kursus ini membangun jalur inferensi bilangan bulat kecil. Perangkat keras gradien, pengoptimal, akurasi klasifikasi, dan impor model otomatis berada di luar latihan.

Tuliskan kontrak untuk batch N, kanal masukan C, dimensi spasial H dan W, kanal keluaran M, serta kernel R kali S. Kita menggunakan urutan NCHW. Elemen keluaran konvensional mengakumulasikan C×R×S hasil perkalian. Untuk keluaran berbentuk N×M×Ho×Wo, hitung N×M×Ho×Wo×C×R×S MAC. Di sini satu MAC berarti satu perkalian dengan akumulasi. Laporan operasi floating-point dapat menghitung perkalian dan penjumlahan secara terpisah, jadi nyatakan aturan penghitungan sebelum membandingkan laporan.

Contoh perhitungan

Ambil N=1, C=2, H=W=5, M=3, dan kernel 3×3, dengan stride satu tanpa padding. Keluaran spasialnya 3×3. Ada 27 elemen keluaran, masing-masing mengakumulasikan 18 hasil perkalian, sehingga totalnya 486 MAC. Vektor bias berisi tiga angka tersimpan, satu per kanal keluaran, tetapi bias ditambahkan pada 27 posisi keluaran. Laporkan penjumlahan itu secara terpisah alih-alih diam-diam mengubah definisi MAC.

Urutan merupakan bagian dari kebenaran. Pembacaan masukan yang mendahulukan kanal dipadukan dengan penafsiran bobot yang mendahulukan posisi spasial memasangkan operand salah meskipun semua nilainya sah. Beri label keluaran acuan dengan koordinat kanal dan spasial. Mulai dengan satu batch, tentukan setiap berkas tensor, dan perluas dimensi batch hanya setelah kontrak dasar stabil.

Catat bentuk, stride, padding, dan rentang numerik yang diterima. Tolak permintaan yang tidak didukung secara eksplisit. Larik perangkat lunak fleksibel tidak membuktikan bahwa implementasi RTL mendukung setiap ukuran. Demikian pula, keluaran acuan tidak dapat mengukur frekuensi, daya, atau akurasi model. Latihan berikutnya membedakan nilai tepat dari perkiraan siklus dengan asumsi yang dinyatakan. Untuk tahap maju, mundur, dan pembaruan pada pelatihan, lihat tutorial resmi PyTorch.

Coba sendiri

Jika hanya kanal keluaran bertambah dari tiga menjadi enam, bagaimana jumlah MAC dan jumlah bias tersimpan berubah?

Baca penjelasan

Ada 54 keluaran dan 54×18=972 MAC. Simpan enam bias. Ukuran masukan tetap sama; penyimpanan bobot menjadi dua kali lipat.

Pilihan berlaku di peramban ini. Ubah kapan saja di bagian bawah halaman.