【问题标题】:Saving a Model in OPENAI Baselines在 OPENAI 基线中保存模型
【发布时间】:2019-05-27 13:12:39
【问题描述】:

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 和 checkpoint 格式?

【问题讨论】:

    标签: model reinforcement-learning openai-gym baseline


    【解决方案1】:

    我也遇到过同样的问题,我通过对基线代码稍作调整解决了这个问题。

    baselines 中有两对方法用于保存和加载模型(save_state&load_state 对和 save_variables&loas_variables 对),您可以在 baselines/common/tf_util.py(line325~line372) 中看到它.

    对于最新版本的baselines,以.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_variables&loas_variables 对替换为 save_state&load_state 对。

    希望这会对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2022-12-26
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多