科学記事からモデルを実装しようとしていますが、それは彼らがゼロパディングを使用していると言っています。 keras Conv2D でこのパディングを構成することは可能ですか?
私が見るパディングの唯一の可能な値は
パディング:「有効」または「同じ」のいずれか(大文字と小文字を区別しない)。
ゼロまたは他の定数値でパディングすることは可能ですか?
「同じ」はゼロパディングを意味します。現在、他の定数を効率的な方法で埋め込むことはできません。
_padding='valid'
_を使用する場合、パディングはありません。
_padding='same'
_を_strides=1
_とともに使用すると、入力のゼロとパディングが行われ、出力の幅と高さが入力と同じになります。このドキュメントで説明されているように、「同じ」はstrides
!= 1のバックエンド間でわずかに矛盾しています。
パディング値を手動で設定したい場合、おそらく最も簡単な方法は _ZeroPadding2D
_ レイヤーを追加することです_Conv2D
_。
たとえば、ZeroPadding2D(padding=((1,2),(3,4)))
は、左側に1次元、右側に2次元、上部に3次元、下部に4次元を追加します。 ZeroPadding2D(5)
は、4つの境界すべてに5次元を追加します。
(ところで、それはバックエンド関数のラップ層です_spatial_2d_padding
_)
を見てみましょう - spatial_2d_padding
関数。テンソルにゼロを埋め込みます。
Padding = 'same'は、入力レイヤーがゼロで埋められる場合にのみ、非表示レイヤーでストライドが空のセルをゼロではなく前のレイヤーの値で埋めることを意味すると思います。
https://keras.io/layers/convolutional/
ZeroPadding2D =>
keras.layers.ZeroPadding2D(padding =(1、1)、data_format = None)2D入力用のゼロパディングレイヤー(例:画像)。
このレイヤーは、イメージテンソルの上下左右にゼロの行と列を追加できます。
引数
パディング:int、または2 intのタプル、または2 intの2タプルのTuple。 intの場合:同じ対称パディングが高さと幅に適用されます。 Tuple of 2 int:高さと幅の2つの異なる対称パディング値として解釈される場合:(symmetric_height_pad、symmetric_width_pad)。 2つのintの2つのtupleのTuple:((top_pad、bottom_pad)、(left_pad、right_pad))と解釈される場合
data_format:「channels_last」または「channels_first」のいずれかの文字列。入力の次元の順序。 「channels_last」は形状(バッチ、高さ、幅、チャンネル)の入力に対応し、「channels_first」は形状(バッチ、チャンネル、高さ、幅)の入力に対応します。デフォルトでは、〜/ .keras/keras.jsonのKeras構成ファイルにあるimage_data_format値が使用されます。設定しない場合、「channels_last」になります。