【问题标题】:"ValueError: setting an array element with a sequence." TensorFlow“ValueError:使用序列设置数组元素。” TensorFlow
【发布时间】:2017-07-09 19:27:16
【问题描述】:

我尝试探索一个简单的演示,但得到了这个错误。如何修改我的代码?

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.

【问题讨论】:

    标签: python tensorflow


    【解决方案1】:

    首先,您的 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))
    

    不过,这可能不是您的本意——拥有一个不接受任何输入的模型有点不寻常。

    【讨论】:

    • 其实,我想在sigmoid函数之后尝试一个新的active函数,当X>6时改变输入X,输出y=1;X
    • (抱歉stackoverflow上的处女问题)实际上,我想在sigmoid函数之后尝试一个新的活动函数,它在X>6时改变输入X,输出y=1;X
    猜你喜欢
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2011-06-08
    • 2018-08-04
    • 2019-08-04
    相关资源
    最近更新 更多