尝试将矢量转换为矩阵后,来自tf.reshape()的错误

时间:2017-02-14 18:06:53

标签: tensorflow

我正在尝试将一维数组转换为TF矩阵,以便在卷积网络中使用,类似于在TF深度MNIST示例中的操作,使用tf.reshape()

X = tf.placeholder(tf.float32, [None, 480])
X = tf.reshape(X, shape=[-1, 60, 8, 1])

我收到以下错误:

ValueError: Cannot feed value of shape (5, 480) for Tensor 'Reshape_1:0', which has shape '(?, 60, 8, 1)'

5是我的batch_size,480是原始数组的长度。我想将它转换为60x8张量,加上1个输出通道,所以我跟随TF MNIST使用目标形状[-1, 60, 8, 1]的例子。

  1. 知道我为什么要这个?似乎在MNIST示例中,他们使用-1将单行调整为AxA矩阵并为输出通道添加一个额外维度?
  2. 我甚至可以使用这样的非方形矩阵,还是会给我一个错误?我尝试做400 = 20x20之类的事情,只是为了看错误是由不均匀的形状引起的,但仍然得到错误......

1 个答案:

答案 0 :(得分:2)

在第一行代码中,您定义一个占位符并将其存储在python变量X中。在第二行代码中,您定义了一个重塑操作符并将其存储在python变量X中。您现在已经覆盖了以前的值X和丢失的占位符访问权限。您正尝试将值输入占位符,但实际上是将其提供给重塑操作符。如果对这些变量使用不同的名称,则不会看到此错误。