2024-05-15 02:56:01 发布
网友
在tensorflow函数tf.nn.conv2d中,padding选项只有'SAME'和'VALID'。
但是在Caffe的conv层中,有pad option可以定义要(隐式地)添加到输入的每一侧的像素数。
如何在Tensorflow中实现这一点?
非常感谢。
在应用tf.nn.conv2d(..., padding="VALID")(有效的填充意味着没有填充)之前,可以使用tf.pad()(请参见doc)填充张量。
tf.nn.conv2d(..., padding="VALID")
tf.pad()
例如,如果要用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的填充。
output
[None, 28, 26, 16]
在应用
tf.nn.conv2d(..., padding="VALID")
(有效的填充意味着没有填充)之前,可以使用tf.pad()
(请参见doc)填充张量。例如,如果要用2像素高、1像素宽填充图像,然后用5x5内核应用卷积:
output
将具有形状[None, 28, 26, 16]
,因为您只有宽度为1的填充。相关问题 更多 >
编程相关推荐