Altifigence Academy

9 / 24 · Konsep

Acuan konvolusi langsung

Untuk masukan [2,3], bobot [4,−1], dan bias satu, hasil salah apa yang muncul jika bias ditambahkan sekali per iterasi kanal masukan?

Utamakan acuan yang dapat diperiksa

Model acuan mengutamakan kontrak yang terlihat daripada kecepatan. Iterasikan kanal keluaran, baris keluaran, dan kolom keluaran; lalu reduksi kanal masukan serta baris dan kolom kernel. Hitung setiap koordinat masukan dan pasok nol di luar batas. Ini mengungkap keluaran salah pertama dan suku tepat yang menyimpang. Model tidak perlu meniru urutan perulangan perangkat keras yang dioptimalkan.

y[m,h,w]=b[m]+∑c∑r∑sx[c,hSh−Pt+rDh,wSw−Pl+sDw]w[m,c,r,s]y[m,h,w]=b[m]+\sum_c\sum_r\sum_s x[c,hS_h-P_t+rD_h,wS_w-P_l+sD_w]w[m,c,r,s]

Inisialisasi akumulator dengan b[m] sekali per keluaran. Menambahkannya di dalam reduksi akan mengulang bias. Dalam model bilangan bulat, x dan w merupakan kode yang dipusatkan dan bias menggunakan skala hasil perkalian.

Contoh multikanal

Gunakan dua kanal masukan 1×1 yang berisi dua dan tiga. Kanal keluaran nol memiliki bobot [4,−1] dan bias satu, menghasilkan 1+8−3=6. Kanal keluaran satu memiliki bobot [−2,5] dan bias −1, menghasilkan −1−4+15=10. Akumulator bersama harus memulai keluaran kedua secara independen alih-alih mempertahankan hasil pertama.

Untuk masukan [1,2,3;4,5,6;7,8,9] dan kernel [1,2;3,4], harapkan [37,47;67,77]. Hasil perkalian pertama yang dicatat adalah 1,4,12,20. Berikutnya 2,6,15,24. Periksa posisi yang dihitung manual; nilai akhir saja dapat menyembunyikan kesalahan yang saling meniadakan.

Bandingkan model langsung dengan model patch-dan-hasil-kali-titik yang strukturnya terpisah. Berbagi rutin alamat yang sama pada keduanya dapat membagikan bug yang sama. Gabungkan struktur independen dengan fixture manual. Pastikan seed acak dapat direproduksi dan simpan tensor yang gagal. Bandingkan akumulator sebelum konversi serta kode keluaran akhir untuk melokalisasi kegagalan numerik.

Model model.mjs kita menerima X[C][H][W] dan W[M][C/G][R][S], dengan satu batch implisit. Model memeriksa tensor persegi panjang, kecocokan kanal, dan kelompok. Model tidak mengimpor model kerangka kerja. Gunakan nilai berbeda, negatif, dan bobot asimetris alih-alih fixture seluruhnya nol. Bandingkan konvensi dengan ONNX Conv sambil mendokumentasikan batas model pengajaran ini.

Coba sendiri

Untuk masukan [2,3], bobot [4,−1], dan bias satu, hasil salah apa yang muncul jika bias ditambahkan sekali per iterasi kanal masukan?

Baca penjelasan

Hasil yang benar adalah 1+8−3=6. Mengulang bias dua kali memberi 8−3+2=7. Inisialisasi bias di luar reduksi kanal.

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