【问题标题】:Tensorflow Reshape with one known dimension具有一个已知维度的 Tensorflow Reshape
【发布时间】:2016-08-09 21:44:34
【问题描述】:

我正在尝试制作一个可以接受任何尺寸灰度图像的卷积网络:

inputs = tf.placeholder(tf.float32, [None, None, None, 1])

最后一个卷积层的输出形状为 [None, None, None, 512],其中 512 是通道数。到目前为止一切都很好。问题是,我需要折叠第二维和第三维,所以我需要重塑。但是我不知道图形构建时的第二维和第三维,所以我这样做:

dims = tf.shape(output)
output = tf.reshape(output, [-1, dims[1] * dims[2], 512])

我希望最终的形状是 [?, ?, 512],但它是 [?,?,?]。我需要在代码后面的构建时知道最后一个维度,那么有没有办法以保留最后一个维度的大小的方式重塑输出张量? 谢谢。

【问题讨论】:

  • 您使用的是哪个版本的 TensorFlow?这适用于我使用 HEAD 的代码(以及 0.10 版本)。
  • 是的,就是这样,我使用的是 0.9.0,它适用于 0.10.0。谢谢!

标签: tensorflow


【解决方案1】:

对于 TensorFlow 的静态形状推断来说,这是一个棘手的案例,因为它依赖于传播有关部分已知值的信息。我们在 0.10 版本中添加了对这种情况(以及一些将张量视为形状的类似情况)的支持。

【讨论】:

  • 是的,就是这样,我只需要升级。
猜你喜欢
  • 2019-12-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
  • 1970-01-01
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
  • 2019-04-17
相关资源
最近更新 更多