旅行好きなソフトエンジニアの備忘録

プログラミングや技術関連のメモを始めました

【Python】 KerasのConv2Dの引数paddingについて

KerasのConv2Dを使う時にpaddingという引数があり、'valid'と'same'が選択できるのですが、これが何なのかを調べるとStackExchangeに書いてありました(convnet - border_mode for convolutional layers in keras - Data Science Stack Exchange)。

'valid'

出力画像は入力画像よりもサイズが小さくなる。
f:id:ni4muraano:20170129144610j:plain

'same'

ゼロパディングすることで、出力画像は入力画像と同じサイズになる。
f:id:ni4muraano:20170129145937j:plain

ゼロパディングすることのメリットについてはここ(定番のConvolutional Neural Networkをゼロから理解する - DeepAge)に書いてあります。

  • 端のデータに対する畳み込み回数が増えるので端の特徴も考慮されるようになる
  • 畳み込み演算の回数が増えるのでパラメーターの更新が多く実行される
  • カーネルのサイズや、層の数を調整できる