Python &引用;ValueError:使用序列设置数组元素。";张量流
我试图探索一个简单的演示,但出现了这个错误。如何修改我的代码Python &引用;ValueError:使用序列设置数组元素。";张量流,python,tensorflow,Python,Tensorflow,我试图探索一个简单的演示,但出现了这个错误。如何修改我的代码 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()) pr
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.
[-9.6.-2.3.]
[ -4. 3. -1. 10.]]
回溯(最近一次呼叫最后一次):
文件“C:\Users\jy\Documents\NetSarang\Xftp\Temporary\test.py”,第19行,在
打印(sess.run(y,feed_dict={x:x_}))
文件“C:\Program Files\Anaconda3\lib\site packages\tensorflow\python\client\session.py”,第767行,正在运行
运行_元数据_ptr)
文件“C:\Program Files\Anaconda3\lib\site packages\tensorflow\python\client\session.py”,第938行,正在运行
np\u val=np.asarray(subfeed\u val,dtype=subfeed\u dtype)
asarray中的文件“C:\Program Files\Anaconda3\lib\site packages\numpy\core\numeric.py”,第482行
返回数组(a,数据类型,copy=False,order=order)
ValueError:使用序列设置数组元素。
首先,您的x\uuuu
变量的维度错误:目前,它是形状[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))
不过,这可能不是您想要做的——不接受任何输入的模型有点不寻常。实际上,我想在sigmoid函数之后尝试一个新的活动函数,当X>6时,它会更改输入X,输出y=1;X(很抱歉关于stackoverflow的原始问题)实际上,我想在sigmoid函数之后尝试一个新的活动函数,当X>6,输出y=1;X时,它会改变输入X