Python 如何在没有批量大小轴的情况下使用tf.pad?
我正在尝试使用Python 如何在没有批量大小轴的情况下使用tf.pad?,python,css,tensorflow,padding,Python,Css,Tensorflow,Padding,我正在尝试使用tf.pad来处理形状图像(?,m,N),这里?是批量大小(不固定),而m,N分别是图像高度和宽度。我的tensorflow版本是1.14 例如,如果输入的x(带有dtype=tf.float32)来自MNIST,则批次大小未知的M=N=28:(?,M,N) 要使用填充大小填充(零)此图像:(1,1,1,1),因此输出大小(?,30,30),我使用了以下代码: paddings = tf.constant([[1,1], [1,1]]) output = tf.pad(x[1:]
tf.pad
来处理形状图像(?,m,N)
,这里?
是批量大小(不固定),而m
,N
分别是图像高度和宽度。我的tensorflow版本是1.14
例如,如果输入的x
(带有dtype=tf.float32
)来自MNIST
,则批次大小未知的M=N=28
:(?,M,N)
要使用填充大小填充(零)此图像:(1,1,1,1)
,因此输出大小(?,30,30)
,我使用了以下代码:
paddings = tf.constant([[1,1], [1,1]])
output = tf.pad(x[1:], paddings, "CONSTANT", constant_values = 0)
但它不起作用。我认为这是因为x[1://code>不是每个图像(M,N)
。
如何将tf.pad
用于tensor(?,M,N)
与(1,1,1)
一起使用,以便在tensorflow版本1.14
中输出图像的大小(?,M+2,N+2)
谢谢。在tf.pad
中,paddings是一个具有形状[n,2]
的整数张量,其中n是张量的秩
因此,您需要更改填充张量,如下所示:
img = tf.random.uniform((1,28,28))
print(img.shape)
>>> (1, 28, 28)
paddings = tf.constant([[0, 0,], [1, 1], [1, 1]])
img_padded = tf.pad(img, paddings)
print(img_padded.shape)
>>> (1, 30, 30)
我在TF2.x上测试了代码,但同样的测试也应该适用于TF1.x。非常感谢!问题很简单,但很敏感:)