10 / 24 · Konsep
im2col dan perkalian matriks
Untuk H=W=4,C=1 dan kernel valid 3×3, hitung elemen masukan asli, P,K, dan elemen patch yang diperluas.
Pelajaran dapat dibaca gratis. Daftar untuk menyimpan progres.
Nyatakan ulang operasi
im2col meratakan setiap jendela masukan menjadi vektor untuk perkalian matriks. Kita menempatkan satu patch pada setiap baris. Matriks A memiliki P×K elemen, dengan P=HoWo dan K=CRS. Bobot yang diratakan membentuk kolom matriks B, berbentuk K×M. Hasil kali AB berbentuk P×M. Konvensi lain menempatkan patch dalam kolom, jadi tetapkan sumbu alih-alih menyimpulkannya dari nama.
Anda boleh membentuk seluruh matriks patch atau menghasilkan patch sesuai kebutuhan. Keduanya dapat menghasilkan angka sama dengan penyimpanan dan bandwidth berbeda. Memiliki mesin perkalian matriks tidak mengharuskan penulisan matriks diperluas lengkap ke memori eksternal.
Contoh matriks
Untuk [1,2,3;4,5,6;7,8,9] dan jendela 2×2, A memiliki baris [1,2,4,5], [2,3,5,6], [4,5,7,8], dan [5,6,8,9]. Kernel [1,2;3,4] memberi kolom bobot [1,2,3,4]. Keempat hasil kali titik adalah 37,47,67,77. Jadi 4×4 dikalikan 4×1 menghasilkan 4×1, yang dibentuk kembali menjadi keluaran 2×2.
Masukan asli berisi sembilan elemen; matriks diperluas berisi enam belas. Nilai tengah lima muncul empat kali, sedangkan nilai sudut satu muncul sekali. Penggunaan ulang spasial menjadi duplikasi dalam representasi yang dimaterialisasikan. Satu vektor bobot digunakan ulang untuk keempat patch. Hitung P×K dan bandingkan dengan C×H×W sebelum menetapkan penyimpanan. Wilayah keluaran lebih besar dapat membuat duplikasi substansial.
Untuk beberapa kanal, ratakan patch dan bobot dalam urutan c,r,s yang sama. Patch 1×1 dua kanal adalah [x0,x1]; membalik hanya kanal bobot mengubah hasil. Mulai dengan nilai kanal asimetris. Konvolusi berkelompok membentuk vektor kelompok terpisah alih-alih memasukkan setiap kanal masukan tanpa membedakan kelompok.
Kesesuaian dengan model langsung memverifikasi nilai aritmetika, bukan transfer memori fisik atau operasi PE serentak. Bab berikutnya menghasilkan jendela setara dari aliran; pembagian tile berikutnya menghindari penyimpanan seluruh tensor diperluas. Catat ukuran matriks antara dan duplikasi serta nilai keluaran agar biaya pemetaan tetap terlihat.
Coba sendiri
Untuk H=W=4,C=1 dan kernel valid 3×3, hitung elemen masukan asli, P,K, dan elemen patch yang diperluas.
Baca penjelasan
Masukan memiliki enam belas elemen. Keluaran 2×2, jadi P=4 dan K=9. Matriks patch lengkap memiliki 36 elemen. Jendela sesuai kebutuhan dapat menghindari penyimpanan seluruh 36.