我试图探索一个简单的演示,但得到了这个错误。我如何修改我的代码?
import tensorflow as tf
sess = tf.Session()
x_ = tf.Variable([[-9,6,-2,3], [-4,3,-1,10]], dtype=tf.float32)
x = tf.placeholder(tf.float32, shape=[4,2])
y = tf.nn.relu(x)
sess.run(tf.global_variables_initializer())
print(sess.run(x_))
print(sess.run(y,feed_dict={x:x_}))我得到的输出是:
[[ -9. 6. -2. 3.]
[ -4. 3. -1. 10.]]
Traceback (most recent call last):
File "C:\Users\jy\Documents\NetSarang\Xftp\Temporary\test.py", line 19, in <module>
print(sess.run(y,feed_dict={x:x_}))
File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 767, in run
run_metadata_ptr)
File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 938, in _run
np_val = np.asarray(subfeed_val, dtype=subfeed_dtype)
File "C:\Program Files\Anaconda3\lib\site-packages\numpy\core\numeric.py", line 482, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: setting an array element with a sequence.发布于 2017-07-09 04:22:38
首先,您的x_变量的维度是错误的:目前,它是形状[2, 4]的,但是您正在尝试在一个需要形状[4, 2]数据的槽中使用它。
其次,tf.Variable实际上是表示你的神经网络模型中的一个变量(在数学意义上),当你训练你的模型时,它将被调优--它是一种保持状态的机制。
为了提供实际的输入来训练您的模型,您只需传递一个常规的Python数组(或numpy数组)。
下面是您的代码的固定版本,它似乎可以做您想做的事情:
import tensorflow as tf
sess = tf.Session()
x = tf.placeholder(tf.float32, shape=[4,2])
y = tf.nn.relu(x)
sess.run(tf.global_variables_initializer())
x_ = [[-9, -4], [6, 3], [-2, -1], [3, 10]]
print(sess.run(y, feed_dict={x:x_}))如果您确实希望神经网络中的一个节点开始使用这些值进行初始化,我将去掉占位符,直接使用x_:
import tensorflow as tf
sess = tf.Session()
x = tf.Variable([[-9, -4], [6, 3], [-2, -1], [3, 10]], dtype=tf.float32)
y = tf.nn.relu(x)
sess.run(tf.global_variables_initializer())
print(sess.run(y))但这可能不是你想要做的--有一个不接受任何输入的模型是很不寻常的。
https://stackoverflow.com/questions/44992860
复制相似问题