Python 稳定的基线保存PPO模型并再次对其进行培训
您好,我使用稳定的基线包,特别是我使用的PPO2,我不知道如何正确地保存我的模型。。。我对它进行了6天的虚拟训练,使我的平均回报率达到300左右,然后我决定这对我来说是不够的,所以我又对模型进行了6天的训练。但当我查看训练统计数据时,每集的第二次训练回归开始于30左右。这表明它没有保存所有参数 以下是我保存和使用软件包的方式:Python 稳定的基线保存PPO模型并再次对其进行培训,python,tensorflow,reinforcement-learning,stable-baselines,Python,Tensorflow,Reinforcement Learning,Stable Baselines,您好,我使用稳定的基线包,特别是我使用的PPO2,我不知道如何正确地保存我的模型。。。我对它进行了6天的虚拟训练,使我的平均回报率达到300左右,然后我决定这对我来说是不够的,所以我又对模型进行了6天的训练。但当我查看训练统计数据时,每集的第二次训练回归开始于30左右。这表明它没有保存所有参数 以下是我保存和使用软件包的方式: def make_env_init(env_id, rank, seed=0): """ Utility function for multiproces
def make_env_init(env_id, rank, seed=0):
"""
Utility function for multiprocessed env.
:param env_id: (str) the environment ID
:param seed: (int) the inital seed for RNG
:param rank: (int) index of the subprocess
"""
def env_init():
# Important: use a different seed for each environment
env = gym.make(env_id, connection=blt.DIRECT)
env.seed(seed + rank)
return env
set_global_seeds(seed)
return env_init
envs = VecNormalize(SubprocVecEnv([make_env_init(f'envs:{env_name}', i) for i in range(processes)]), norm_reward=False)
if os.path.exists(folder / 'model_dump.zip'):
model = PPO2.load(folder / 'model_dump.zip', envs, **ppo_kwards)
else:
model = PPO2(MlpPolicy, envs, **ppo_kwards)
model.learn(total_timesteps=total_timesteps, callback=callback)
model.save(folder / 'model_dump.zip')
您保存模型的方式是正确的。培训不是一个单调的过程:在进一步培训后,它也可能显示出更糟糕的结果 你能做的,首先是写进度日志: 模型=PPO2MlpPolicy、envs、tensorboard_log=。/日志/进度_tensorboard/ 要查看日志,请在终端中运行: tensorboard-端口6004-日志目录/日志/进度\u tensorboard/ 它将为您提供指向该板的链接,然后您可以在浏览器中打开该链接,例如 其次,您可以每X步对模型进行快照: 从稳定的\u baselines.common.callbacks导入检查点回调 检查点回调=检查点回调保存频率=1e4,保存路径='。/模型检查点/' model.learntotal\u timesteps=total\u timesteps,callback=[callback,checkpoint\u callback]
结合日志,您可以选择性能最佳的模型 调用PPO2.load时是否需要提供参数envs、**ppo_kwards?我希望将配置与模型一起保存。