2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

im2colのy:y_max:Sとx:x_max:Sの図示

Last updated at Posted at 2020-06-14

「ゼロから作るDeep Learning」にim2colという画像形式を行列形式に変換する関数があります。
4次元の画像形式imgを6次元の形式colに変換して後にcolをreshapeして行列形式にしています。
col[:, :, y, x, :, :] = img[:, :, y:y_max_S, x:x_max:S]を理解するために図を描きました。

なお、記号の意味と用いたソースコードを以下に示します。画像数はN=1、チャネル数はC=2、フィルタは3×3(FH=FW=3)、フィルタが重なるようにストライドは2(S=2)、画面は縦と横が異なるH=5、W=7、パディングはなし(P=0)としました。出力は2×3(OH=2、OW=3)となりました。

TT20002-a01p20(20200614)凡例.png
TT20002-a01p21(20200614)コード.png

以下の図は、forループの最後であるx=2、y=2におけるimgからcolへの変換を示します。
x_max = x + SOW = 2 + 23 = 8
y_max = y + SOH = 2 + 22 = 6
x:x_maxとy:y_maxでimgを囲んだ範囲を黄色で示します。ストライドS=2のため、imgから取り出す要素は、赤字および緑字で示すx=2,4,6とy=2,4であり、colのy=2、x=2に対応した黄色で示す範囲にコピーします。
なお、x_max=8とy_max=6は、imgのx側の範囲[0:7]、y側の範囲[0:5]を超えていますが、colにコビーする対象として参照していないため、問題にはなりません。
TT20002-a01p22(20200614)代表例.png

参考までに全体を以下に示します。
・ y=0の部分
TT20002-a01p23(20200614)全体1of3.png
・ y=1の部分
TT20002-a01p24(20200614)全体2of3.png
・ y=2の部分
TT20002-a01p25(20200614)全体3of3.png
以 上

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?