TypeError: can't pickle NotImplementedType objects (in keras, python)

TypeError: can't pickle NotImplementedType objects (in keras, python)

我正在使用 Keras 做深度 运行。 但是在学习后存储模型的过程中出现如下错误

TypeError: can't pickle NotImplementedType objects

当我 运行 另一个目录中的相同代码时没有问题。

下面的代码是导致错误的代码部分。

.... 

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的类型错误?

也是一样的环境,就是不知道为什么在不同的目录下效果不一样

如果你能为我提供这个问题的解决方案,我将不胜感激。

保存多GPU模型时,Keras文档建议您调用base模型的save(fname)save_weights(fname)方法,而不是那些multi_gpu_model(参见页面底部的 here)。

我会将您的 multi_gpu_model 分配给一个新变量,而不是重新分配 model。这样您就可以轻松参考可用于节省重量的基本模型。