我正在使用Keras进行深度运行。 但是,在学习之后存储模型的过程中发生以下错误。
TypeError:无法挑选NotImplementedType对象
当我在另一个目录中运行相同的代码时没有问题。
以下代码是导致错误的代码部分。
....
model.add(Dense(2, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model = multi_gpu_model(model, gpus=4)
model.compile(loss='binary_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
model.fit(x_train,y_train,epochs = 3, batch_size =500)
scores = model.evaluate(x_test,y_test)
#print("%s:.2f%%"%(model.metrics_names[1], scores[1]*100))
model.save('/disk3/seaice/seaice_keras_model2.h5')
在keras里面的存储方法中出现了pickle的类型错误吗?
它也是相同的环境,但我不知道为什么它在不同的目录中的工作方式不同。
如果你能为我解决这个问题,我会很感激。
答案 0 :(得分:1)
保存multi-gpu模型时,Keras文档建议您调用 base 模型的save(fname)
或save_weights(fname)
方法,而不是{{1 (请参阅页面底部的here)。
我会将您的multi_gpu_model
分配给新变量,而不是重新分配multi_gpu_model
。这样您就可以轻松引用可用于保存权重的基本模型。