●im2colという関数で行われること
図6-28はim2col関数のイメージです。3×3の範囲が右に1画素づつ移動し、端まで行くと左端まで戻りますがその際、1画素下に移動します。これを右下まで28×28=784回行います。この一連の動作における3×3の画素の値を横に並べたものがim2col関数です。
図6-28 3×3の範囲を上下左右に走査
●メモリのリードアドレスの遷移を考える
ハードウエアにおいて配列や行列は「メモリ」に割り当てられます。図6-28の数字は各画素が格納されているメモリ・アドレスにあたります。
そしてメモリ・アドレスは「カウンタ」で生成しますが、どのようなカウンタを設計すれば良いでしょうか?それではメモリアドレスの遷移を見てみましょう(図6-29)。
図6-29 網掛けの部分に注目 |