使用numpy.ndarrays导致TypeError的Tflearns .fit()方法

时间:2018-04-30 14:35:35

标签: python-3.x mnist tflearn numpy-ndarray

执行下面的代码时,我收到此错误TypeError: unhashable type: 'numpy.ndarray'。我搜索了Stackoverflow但没有找到解决问题的方法。目标是通过mnist数据集对数字进行分类。错误发生在modell.fit()方法中(来自tflearn)。如果需要,我可以附加错误的完整错误消息。我也尝试了这个方法,你把x和y标签放在字典中并用它训练它,但它引发了另一个错误信息。 (注意我在此代码中排除了我的预测函数。)

代码:

import tflearn.datasets.mnist as mnist
x,y,X,Y=mnist.load_data(one_hot=True)
x=x.reshape([-1,28,28,1])
X=X.reshape([-1,28,28,1])
import tflearn


class Neural_Network():
    def __init__(self,x,y):
        self.x=x
        self.y=y
        self.epochs=60000

    def main(self):
        cnn=tflearn.layers.core.input_data(shape=[None,28,28,1],name="input_layer")
        cnn=tflearn.layers.conv.conv_2d(cnn,32,2, activation="relu")
        cnn=tflearn.layers.conv.max_pool_2d(cnn,2)
        cnn=tflearn.layers.conv.conv_2d(cnn,32,2, activation="relu")
        cnn=tflearn.layers.conv.max_pool_2d(cnn,2)
        cnn=tflearn.layers.core.flatten(cnn)
        cnn=tflearn.layers.core.fully_connected(cnn,1000,activation="relu")        
        cnn=tflearn.layers.core.dropout(cnn,0.85)
        cnn=tflearn.layers.core.fully_connected(cnn,10,activation="softmax")
        cnn=tflearn.layers.estimator.regression(cnn,learning_rate=0.001)
        modell=tflearn.DNN(cnn)
        modell.fit(self.x,self.y)
        modell.save("mnist.modell")


nn=Neural_Network(x,y)    
nn.main()
nn.predict(X[1])
print("Label for prediction:",Y[1])

1 个答案:

答案 0 :(得分:0)

所以这个问题解决了这个问题。我只重新启动了我的Jupiter-Notebook,一切正常。但是有一些例子:1。我每次想要重新训练网时都要重新启动内核,2。当我尝试加载保存的模式时,我得到另一个错误,所以我无法处理(错误是NotFoundError: Key Conv2D_2/W not found in checkpoint)。我会问这个问题的另一个问题。结论:如果某些东西运行良好,请尝试重新安装Jupiter Notebook。如果你想训练ANN重新启动你的内核。