如何在张量流中的deconv2d的output_shape参数中给出变量batch_dim?

时间:2016-02-11 17:53:42

标签: tensorflow deconvolution

我正在尝试对可变大小的数据批量使用tf.nn.deconv2d()操作。但是,我似乎需要将output_shape参数设置如下:

tf.nn.deconv2d(x, filter, output_shape=[12, 24, 24, 5], strides=[1, 2, 2, 1],
               padding="SAME")

为什么tf.nn.deconv2d()采用固定的output_shape?有没有办法指定变量批量维度?如果输入批量大小变化会发生什么?

1 个答案:

答案 0 :(得分:5)

N.B。 tf.nn.deconv2d()将在下一版TensorFlow(0.7.0)中调用tf.nn.conv2d_transpose()

output_shape的{​​{1}}参数接受计算的tf.nn.deconv2d()作为其值,这使您可以指定动态形状。例如,假设您的输入定义如下:

Tensor

...然后可以在运行时计算特定步骤的批量大小:

# N.B. Other dimensions are chosen arbitrarily.
input = tf.placeholder(tf.float32, [None, 24, 24, 5])

使用此值,您可以使用tf.pack()batch_size = tf.shape(input)[0] 参数构建到output_shape

tf.nn.deconv2d()