我是Tensorflow的新手,如果我问一个愚蠢的问题,对不起。 这是我的代码。它总是会出错:
ValueError: Cannot feed value of shape (3,) for Tensor
'Placeholder:0', which has shape '(3, ?)'
我的问题是它的形状(3,)是什么意思?为什么我不能将形状(3,)的值提供给(3,?)占位符的形状?当我喂一个原始矩阵(即[1,3,8])时,为什么张量流将它识别为(3,)的形状,这似乎是一个有3个原始矩阵?
代码:
import tensorflow as tf
x = tf.placeholder(tf.int32, [3,None])
y = x-2
with tf.Session() as session:
result = session.run(y, feed_dict={x: [1,3,8]})
print(result)
答案 0 :(得分:0)
您的x
是一个二维数组,但您正在为其输入一维输入。
此更改将起作用:
import tensorflow as tf
import numpy as np
x = tf.placeholder(tf.int32, [3,None])
y = x-2
with tf.Session() as session:
result = session.run(y, feed_dict={x: np.reshape([1,3,8], (3,-1))})
print(result)
答案 1 :(得分:0)
在开始任何框架之前,阅读基础知识非常有用。 TF已经拥有它们。阅读时间不到一小时,可以节省您的时间。足够的咆哮。
Reading about the terminology你可以看到形状(3,)表示你有3个元素的向量。这正是您提供的[1, 3, 8]
。
阅读shapes,你会发现你希望你的占位符是一个大小的矩阵(3 x的东西)。因此,请调整占位符或进食值。