oreilly-japan / deep-learning-from-scratch

『ゼロから作る Deep Learning』(O'Reilly Japan, 2016)
MIT License
3.99k stars 3.34k forks source link

col2im関数のimg配列の初期化サイズについて #46

Open pometa0507 opened 4 years ago

pometa0507 commented 4 years ago

https://github.com/oreilly-japan/deep-learning-from-scratch/blob/77eba24406354f1361fe3614fdcac54844729184/common/util.py#L71-L99

上記コードでimgの初期化部分 img = np.zeros((N, C, H + 2*pad + stride - 1, W + 2*pad + stride - 1)) について、stride>1のときに余分なゼロ要素を生成している気がします。

return時のスライスにて消去されるので結果には影響ないかと思いますが、 余分なメモリ使用やコード理解の妨げになるのではと思い投稿させていただきました。

image

改善案として、img初期化時の配列サイズは下記でよいかと思うのですがいかがでしょうか。 img = np.zeros((N, C, H + 2*pad, W + 2*pad))