Tensorflow错误 “unhashable type: ‘numpy.ndarray'”

    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’

我试图用神经网络实现异或门,但找不到错误所在。


回答:

首先你定义了result为一个占位符,但后来又重新定义为result = data_output[j]。这时候就出错了,因为你无法再向feed_dict中传入值了。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注