通过pickle保存RL代理,由于pickle.thread_RLock而无法保存--此错误的来源是什么



我正试图在训练后保存我的强化学习剂类,以便稍后通过酸洗进行进一步训练。

使用的脚本是:

with open('agent.pickle','wb') as agent_file:
pickle.dump(agent,agent_file)

我收到一个错误:

TypeError: can't pickle _thread.RLock objects

我已经搜索了这个错误消息,但不确定错误的实际来源是什么。关于具体是哪行代码导致了这个错误,回溯是没有信息的。使用的脚本来自3个独立的.py文件。其中一个已经建立了tensorflow,keras模型,但再次不确定这是从哪里来的!我读过这个错误可能来自lambda函数,但这些函数都不是我自己定义的,除非它们被tensorflow等包内部使用。

我也遇到了同样的错误,但找到了解决方法。在model.fit()之后,使用model.save("modelName")。它将创建一个文件夹,模型将保存在该文件夹中。

要加载模型,请使用keras.models.load_model("modelName")

最新更新