Tensorflow関数 tf.nn.conv2d では、パディングオプションには「SAME」と「VALID」しかありません。
しかし、Caffeのconvレイヤーには パッドオプション があり、入力の両側に(暗黙的に)追加するピクセル数を定義できます。
Tensorflowでそれを達成する方法は?
どうもありがとうございました。
tf.pad()
を使用して doc を参照)、tf.nn.conv2d(..., padding="VALID")
を適用する前にTensorをパディングできます(有効なパディングはパディングがないことを意味します)。
たとえば、画像を高さ2ピクセル、幅1ピクセルでパディングし、5x5カーネルでたたみ込みを適用する場合:
input = tf.placeholder(tf.float32, [None, 28, 28, 3])
padded_input = tf.pad(input, [[0, 0], [2, 2], [1, 1], [0, 0]], "CONSTANT")
filter = tf.placeholder(tf.float32, [5, 5, 3, 16])
output = tf.nn.conv2d(padded_input, filter, strides=[1, 1, 1, 1], padding="VALID")
output
の形状は[None, 28, 26, 16]
、幅が1のパディングしかないため。