类型错误:can';t pickle NotImplementedType对象(在keras、python中)

类型错误:can';t pickle NotImplementedType对象(在keras、python中),python,keras,pickle,Python,Keras,Pickle,我在用Keras做深度跑步。 但是,在学习后存储模型的过程中发生了以下错误 TypeError:无法pickle NotImplementedType对象 当我在另一个目录中运行相同的代码时,我没有问题 下面的代码是导致错误的代码部分 .... model.add(Dense(2, activation='relu')) model.add(Dense(1, activation='sigmoid')) model = multi_gpu_model(model, gpus=4) mo

我在用Keras做深度跑步。 但是,在学习后存储模型的过程中发生了以下错误

TypeError:无法pickle 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内的储存方法中是否出现酸洗类型错误

它也是相同的环境,但我不知道为什么它在不同的目录中工作方式不同


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

在保存多gpu模型时,Keras文档建议您调用基本模型的
save(fname)
save_weights(fname)
方法,而不是
多gpu模型的
方法(请参阅本页最底部)


我会将您的
多gpu\U模型
分配给一个新变量,而不是重新分配
模型
。这样你就可以很容易地参考你的基本模型,你可以用它来节省重量。

我在解决这个问题时发现了一些有趣的东西。当我第一次使用这个模型时,我使用了25亿个数据集。发生错误时,使用了9000万个数据集。因此,我充分降低了模型的层,它再次运行良好。如果模型对于数据量来说太深,是否会出现此问题?或者这是偶然解决的问题?