代码之家  ›  专栏  ›  技术社区  ›  송준석

类型错误:无法pickle notimplementedtype对象(在keras、python中)

  •  3
  • 송준석  · 技术社区  · 8 年前

    我用角膜做了深部手术。 但是,在学习后存储模型的过程中,出现了以下错误。

    类型错误:无法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内部存储方法中是否出现泡菜类型错误?

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

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

    1 回复  |  直到 8 年前
        1
  •  1
  •   pikappa    8 年前

    保存多GPU模型时,keras文档建议您调用 save(fname) save_weights(fname) 方法 基础 模型而不是 multi_gpu_model (见 here

    我会指派你 多GPU模型 新变量而不是重新分配 model . 这样,您就可以轻松地引用基本模型,从而可以用来保存权重。