Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为Tensorflow占位符提供numpy数组?_Python_Arrays_Numpy_Tensorflow - Fatal编程技术网

Python 如何为Tensorflow占位符提供numpy数组?

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(

我正在用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(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
。如果您给出完整的错误消息,这会有所帮助。