numpy.ndarrays 导致 TypeError 的 Tflearns .fit() 方法
Tflearns .fit() method with numpy.ndarrays causing TypeError
所以我在执行下面的代码时得到这个错误 TypeError: unhashable type: 'numpy.ndarray'
。我搜索了 Whosebug,但没有找到解决问题的方法。目标是通过 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])
所以问题自行解决了。我只重新启动了我的 Jupiter-Notebook,一切正常。但是有一些例外:1.每次我想重新训练网络时我都必须重新启动内核,2.我在尝试加载保存的模型时遇到另一个错误,所以我无法继续工作(错误是NotFoundError: Key Conv2D_2/W not found in checkpoint
).这个问题我再问一个问题。结论:如果出现问题,请尝试重新定位您的 Jupiter Notebook。如果您想训练 ANN,请重新启动您的内核。
所以我在执行下面的代码时得到这个错误 TypeError: unhashable type: 'numpy.ndarray'
。我搜索了 Whosebug,但没有找到解决问题的方法。目标是通过 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])
所以问题自行解决了。我只重新启动了我的 Jupiter-Notebook,一切正常。但是有一些例外:1.每次我想重新训练网络时我都必须重新启动内核,2.我在尝试加载保存的模型时遇到另一个错误,所以我无法继续工作(错误是NotFoundError: Key Conv2D_2/W not found in checkpoint
).这个问题我再问一个问题。结论:如果出现问题,请尝试重新定位您的 Jupiter Notebook。如果您想训练 ANN,请重新启动您的内核。