【问题标题】:Tensorflow error "unhashable type: 'numpy.ndarray'"Tensorflow 错误“不可散列的类型:'numpy.ndarray'”
【发布时间】:2018-04-24 15:08:02
【问题描述】:
    import tensorflow as tf
    import numpy as np

    layer1_weight = tf.Variable(tf.zeros([2 , 3]))
    layer1_bias = tf.Variable(tf.zeros([3 , 1]))
    layer2_weight = tf.Variable(tf.zeros([3, 1]))
    layer2_bias = tf.Variable(tf.constant([[0.]]))
    input = tf.placeholder(tf.float32 , [2 , 1] )
    result = tf.placeholder(tf.float32 ,[1 , 1] )

    data_input = [np.float32([[0.],[0.]]) , np.float32([[0.],[1.]]) , 
    np.float32([[1.],[0.]]) , np.float32([[1.],[1.]])]
    data_output = [np.float32([[0.]]) , np.float32([[1.]]) , 
    np.float32([[1.]]) , np.float32([[0.]])]
    layer1_output = tf.add(tf.matmul(tf.transpose(layer1_weight) , input) , 
    layer1_bias )
    layer2_output = tf.add(tf.matmul(tf.transpose(layer2_weight) , 
    layer1_output) , layer2_bias)
    print (data_input[0])
    loss = tf.square(tf.subtract(result , layer2_output))
    optimizer = tf.train.GradientDescentOptimizer(0.0001)
    train_step = optimizer.minimize(loss)


    sess = tf.Session()
    init = tf.global_variables_initializer()
    sess.run(init)

    for i in range(30) :
        j = int(i % 4)
        result = data_output[j]
        sess.run(train_step , feed_dict= {input : data_input[j] , result : 
        data_output[j]})
        print(str(layer2_output))

代码返回错误

TypeError: unhashable type: 'numpy.ndarray'

这里我尝试用神经网络实现异或门但找不到错误。

【问题讨论】:

    标签: python numpy tensorflow neural-network artificial-intelligence


    【解决方案1】:

    首先您将result 定义为占位符,但稍后将其重新定义为 result = data_output[j]。这是它出错的时候,因为您不能再将值提供给feed_dict

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 2020-01-24
      • 1970-01-01
      相关资源
      最近更新 更多