Search code examples
python-3.xmnisttflearnnumpy-ndarray

Tflearns .fit() method with numpy.ndarrays causing TypeError


So I get this error TypeError: unhashable type: 'numpy.ndarray' when executing the code below. I searched through Stackoverflow but haven't found a way to fix my problem. The goal is to classify digits via the mnist dataset. The error is in the modell.fit() method (from tflearn). I can attach the full error message of the error if needed. I tried it also with the method were you put the x and y lables in an dictionary and train it with this but it raised another error message. (Note I excluded my predict function in this code).

Code:

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])

Solution

  • So the problem fixed it self. I only restarted my Jupiter-Notebook and everything worked fine. But with a few execptions: 1. I have to restart the Kernel everytime I want to retrain the net, 2. I get another error while I try to load the saved modell, so I can't work on (the error is NotFoundError: Key Conv2D_2/W not found in checkpoint). I will ask another question for this problem. Conclusion: Try to relod your Jupiter Notebook if something is't working well. And if you are want to train a ANN restart your Kernel.