本文主要是介绍【踩坑记录】TypeError: can‘t pickle SwigPyObject objects,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
笔者利用keras训练模型时,当程序运行到保存模型model.save('model.h5')
的时候,报如下错误
TypeError: can't pickle SwigPyObject objects
根据错误提示,可以看到在对模型进行序列化保存的时候,出现了不支持序列化的对象,也就是SwigPyObject
对象。
然而模型都可以跑通,但是为什么会在保存模型的时候报这样的错误呢?建模过程中也没有引入其他的算子啊,都是模型支持的操作,目前还未搞清楚,但是还是可以通过一种迂回的方法来解决该问题的。
既然直接序列化保存模型不成,那么应该可以只保存模型参数吧,到预测阶段先恢复模型结构,然后再将保存的模型参数加载进来就可以了。
解决方案:
将model.save('model.h5')
改为model.save_weights('model.weights')
就可以了
这篇关于【踩坑记录】TypeError: can‘t pickle SwigPyObject objects的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!