Python 如何为Tensorflow占位符提供numpy数组?
我正在用TensorFlow创建一个简单的玩具示例,我遇到了一个奇怪的错误。我有两个占位符,定义如下:Python 如何为Tensorflow占位符提供numpy数组?,python,arrays,numpy,tensorflow,Python,Arrays,Numpy,Tensorflow,我正在用TensorFlow创建一个简单的玩具示例,我遇到了一个奇怪的错误。我有两个占位符,定义如下: x = tf.placeholder(tf.float32, shape=[None,2]) [two-parameter input] y_ = tf.placeholder(tf.float32, shape=[None,2]) [one-hot labels] 稍后,我将尝试使用定义为以下内容的提要来为这些占位符提供提要: feed_dict={x: batch[0].astype(
x = tf.placeholder(tf.float32, shape=[None,2]) [two-parameter input]
y_ = tf.placeholder(tf.float32, shape=[None,2]) [one-hot labels]
稍后,我将尝试使用定义为以下内容的提要来为这些占位符提供提要:
feed_dict={x: batch[0].astype(np.float32), y_: batch[1].astype(np.float32)}
其中batch[0]
和batch[1]
都是大小(100,2)的numpy ndarray[通过打印出各自的大小进行验证]
当我尝试运行模型时,我得到错误:
“InvalidArgumentError:必须为带有dtype float的占位符张量“占位符”输入一个值”
由上面定义的占位符“x”引起
谁知道我做错了什么?我在网上浏览了几个例子,看起来这应该行得通。。。是否有另一种方法可以将numpy数组中的值提供给占位符
如果有帮助的话,我正在Ubuntu、SCL和Python 2.7中工作,我已经安装了所有标准的numpy和tensorflow软件包。如果没有完整的代码,很难准确回答。 我试着复制你在玩具示例中描述的内容,结果成功了
import tensorflow as tf
import numpy as np
x = tf.placeholder(tf.float32, shape=[None, 2])
y_ = tf.placeholder(tf.float32, shape=[None, 2])
loss = tf.reduce_sum(tf.abs(tf.sub(x, y_)))#Function chosen arbitrarily
input_x=np.random.randn(100, 2)#Random generation of variable x
input_y=np.random.randn(100, 2)#Random generation of variable y
with tf.Session() as sess:
print(sess.run(loss, feed_dict={x: input_x, y_: input_y}))
为了帮助调试,您可以为所有张量和操作指定一个名称,例如通过执行
x=tf.placeholder(…,name='x')
。那么错误消息就不那么神秘了。您的代码应该可以工作,我在我的机器上也做了同样的事情,即使用相同类型的numpy.ndarray
输入tf.placeholder
。如果您给出完整的错误消息,这会有所帮助。