3‐02 1層目のEXCEL化(続き)
●VBAでシートを自動生成
im2col00, im2col01, im2col02と3シート生成されます。これらはCh00, Ch01,
Ch02の画素を784×9の行列に展開したものです(*1)。こうすることによりフィルタ係数との「畳み込み」が「行列の乗算」になります。
(*1)このようにカーネルは3x3なので9列、カーネルの動く範囲は28x28なので784行になる |
図3-10 行列乗算に備えて並び替え
●Module01の次はModule02
次はVBAのModule02を開き、マクロを実行します。 |
図3‐11 Module02を開いて実行
●行列乗算のためのVBAマクロ
すると新たにシートが3枚現れます。これらは行列乗算の結果です。 |
図3‐12 乗算の結果784行×16列に
●行列乗算する際の行と列の関係
im2col00は784行×9列あり、それとW1_Biasの上から9行×16列を乗算します(図3‐13)。im2col00_W1はその結果で、784行×16列になります。
im2col01にはW1_Biasの10行目〜18行目、im2col02にはW1_Biasの19行目〜27行目が掛かります(結果的にこのような畳み込みになる) |
図3‐13 行列の形状の変化
●Moduleを順番に実行する
さらにVBAのModule03を実行すると図3‐14のようにim2colAll_W1が現れます。これはim2col00_W1〜im2col02_W1を足し込んだものです。 |
図3‐14 3つのシートを足し込んで1つのシートに
次のページへ
目次へ戻る
|