tensorflow の tf.nn.max_pool における 'SAME' と 'VALID' パディングの違いは何ですか? 質問する

tensorflow の tf.nn.max_pool における 'SAME' と 'VALID' パディングの違いは何ですか? 質問する

tf.nn.max_poolの「SAME」パディングと「VALID」パディングの違いは何ですかtensorflow?

私の意見では、「VALID」は、最大プールを実行するときに、エッジの外側にゼロ パディングがないことを意味します。

によると深層学習のための畳み込み演算ガイドでは、プール演算子にパディングはなく、 の「VALID」のみを使用すると書かれていますtensorflow。しかし、 の最大プールの「SAME」パディングとは何でしょうかtensorflow?

ベストアンサー1

ASCIIアートがお好きなら:

  • "VALID"= パディングなし:

       inputs:         1  2  3  4  5  6  7  8  9  10 11 (12 13)
                      |________________|                dropped
                                     |_________________|
    
  • "SAME"= ゼロパディング付き:

                   pad|                                      |pad
       inputs:      0 |1  2  3  4  5  6  7  8  9  10 11 12 13|0  0
                   |________________|
                                  |_________________|
                                                 |________________|
    

この例では、

  • 入力幅 = 13
  • フィルター幅 = 6
  • ストライド = 5

ノート:

  • "VALID"一番右の列 (または一番下の行) のみを削除します。
  • "SAME"左右に均等にパディングしようとしますが、追加する列の数が奇数の場合は、この例のように右側に余分な列が追加されます (同じロジックが垂直方向に適用されます。下部に余分なゼロの行が存在する場合があります)。

編集

名前について:

  • パディングでは"SAME"、ストライド 1 を使用すると、レイヤーの出力は入力と同じ空間次元になります。
  • パディングでは"VALID"、「作られた」パディング入力はありません。レイヤーは有効な入力データのみを使用します。

おすすめ記事