Openai Baselines使用以下命令保存训练后的模型,
python -m baselines.run --alg=ppo2 --env=PongNoFrameskip-v4 --num_timesteps=2e7 --save_path=~/models/pong_20M_ppo2
但是保存的训练模型不是形式,
.ckpt.meta
.ckpt.index
.ckpt.data
checkpoint
在早期版本中是以这种形式出现的。如何将模型另存为.ckpt.meta,.ckpt.index,.ckpt.data和检查点格式?
答案 0 :(得分:0)
我遇到了相同的问题,并且通过对基准代码进行一些调整来解决了这个问题。
在基线中有两种用于保存和加载模型的方法(save_state&load_state对和save_variables&loas_variables对),您可以在 baselines / common / tf_util.py 中看到它(line325〜line372) 。
对于最新版本的基准,已经放弃了以.ckpt.meta,.ckpt.index,.ckpt.data和checkpoint格式保存和加载模型的save_state&load_state对,因此您需要重新启用save_state&load_state对。
以ppo2为例,在 baselines / ppo2 / model.py 中,进行以下替换: 在第125行中,替换
self.save = functools.partial(save_variables, sess=sess)
self.load = functools.partial(load_variables, sess=sess)
使用
self.save = functools.partial(save_state, sess=sess)
self.load = functools.partial(load_state, sess=sess)
在第4行中 替换
from baselines.common.tf_util import get_session, save_variables, load_variables
使用
from baselines.common.tf_util import get_session, save_state, load_state
这将用save_state&load_state对替换save_variables&loas_variables对。
希望这会对您有所帮助。