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"
、「作られた」パディング入力はありません。レイヤーは有効な入力データのみを使用します。