読者です 読者をやめる 読者になる 読者になる

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

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

【Python】 KerasのConvolution2Dの引数border_modeについて

KerasのConvolution2Dを使う時にborder_modeという引数があり、'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)に書いてあります。

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