Python TensorFlow:获取无效参数错误,即使提要dict的形状和数据类型正确

Python TensorFlow:获取无效参数错误,即使提要dict的形状和数据类型正确,python,numpy,tensorflow,Python,Numpy,Tensorflow,我用TensorFlow建立的ML模型有问题。在图中,我有一个类型为tf.float32和形状[100,1]的占位符: dim_hidden = 100 ... h_prime_previous = tf.placeholder(tf.float32, shape=[dim_hidden, 1]) 在提要中,我传入一个np.float32类型和shape(100,1)的NumPy数组: 我知道尺寸和类型是正确的,因为当我运行这个 print("Shape: %s; Dtype: %s" % (

我用TensorFlow建立的ML模型有问题。在图中,我有一个类型为
tf.float32
和形状
[100,1]
的占位符:

dim_hidden = 100
...
h_prime_previous = tf.placeholder(tf.float32, shape=[dim_hidden, 1])
在提要中,我传入一个np.float32类型和shape(100,1)的NumPy数组:

我知道尺寸和类型是正确的,因为当我运行这个

print("Shape: %s; Dtype: %s" % (h_prime_prev.shape, h_prime_prev.dtype))
它的输出如下:

Shape: (100, 1); Dtype: float32
但是,我仍然会遇到以下错误:

Invalid argument: You must feed a value for placeholder tensor 'Placeholder' with dtype float and shape [100,1]
问题可能是什么?我以前遇到过它,但我只需要更新TensorFlow,它就成功了。然而,这一次,我没有技巧了,因为TensorFlow是最新的。有什么建议吗

编辑:


我还从某人那里了解到,可能是我将h_prime_设置在代码中其他部分之前。但是,这并没有发生,所以这绝对不是问题所在。

您可以打印
tf.get\u default\u graph().as\u graph\u def()
并查看您有多少占位符吗?我怀疑您有3个占位符,但只输入了2个。对不起,执行该行后,我如何才能找到占位符的数量?另外,通过简单的Ctrl+F,我可以告诉您有6个占位符,但我在一个会话中多次调用sess.run(),因为我在图中有两个可变长度的段,它们需要分开展开。所有六个变量都在整个会话的某个时间点输入。所有相关占位符都必须在所有运行调用期间输入。您可以通过将运行调用更改为do
feed\u dict={y\u previous:y\u prev,h\u prime\u previous:h\u prime\u prev,“占位符:0”:np.zeros((100,1)).as_type(np.float32)}
!两个问题:为什么/如何工作,为什么说“修复”?我打赌这两个问题的答案是相同的。请随意回答这些问题,我会接受的。您可以打印
tf.get_default_graph().as_graph_def()
并查看您有多少占位符吗?我怀疑您有3个占位符,但只输入了2个。对不起,执行该行后,我如何才能找到占位符的数量?另外,通过简单的Ctrl+F,我可以告诉您有6个占位符,但我在一个会话中多次调用sess.run(),因为我在图中有两个可变长度的段,它们需要分开展开。所有六个变量都在整个会话的某个时间点输入。所有相关占位符都必须在所有运行调用期间输入。您可以通过将运行调用更改为do
feed\u dict={y\u previous:y\u prev,h\u prime\u previous:h\u prime\u prev,“占位符:0”:np.zeros((100,1)).as_type(np.float32)}
!两个问题:为什么/如何工作,为什么说“修复”?我打赌这两个问题的答案是相同的。请随便回答这些问题,我会接受的。
Invalid argument: You must feed a value for placeholder tensor 'Placeholder' with dtype float and shape [100,1]