TensorF中卷积的自定义填充

2024-04-20 03:43:34 发布

您现在位置:Python中文网/ 问答频道 /正文

在tensorflow函数tf.nn.conv2d中,padding选项只有'SAME'和'VALID'。

但是在Caffe的conv层中,有pad option可以定义要(隐式地)添加到输入的每一侧的像素数。

如何在Tensorflow中实现这一点?

非常感谢。


Tags: 函数定义tftensorflow选项nncaffeoption
1条回答
网友
1楼 · 发布于 2024-04-20 03:43:34

在应用tf.nn.conv2d(..., padding="VALID")(有效的填充意味着没有填充)之前,可以使用tf.pad()(请参见doc)填充张量。


例如,如果要用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的填充。

相关问题 更多 >