Stable Baselines3中PPO、SAC、TD3无法生成有效TensorBoard日志文件的问题求助
Stable Baselines3中PPO、SAC、TD3无法生成有效TensorBoard日志文件的问题求助
我现在正在对比A2C、DQN和PPO这几个强化学习模型,需要生成TensorBoard图表给老师展示结果。但遇到了一个棘手的问题:只有A2C模型能正常让TensorBoard收集到数据并生成完整图表,PPO、SAC和TD3虽然会创建TensorBoard的事件文件,但文件里完全没有任何有效数据内容。
我使用的PPO和A2C代码结构几乎完全一致,具体代码如下:
PPO 代码片段
import os from stable_baselines3.common.env_util import make_vec_env from stable_baselines3.common.logger import configure from stable_baselines3.common.vec_env import SubprocVecEnv log_path_ppo = "log/ppo_cartpole_tensorboard/" #log_path_ppo = "log/ppo_lunar_tensorboard/" model_ppo.set_logger(configure(log_path_ppo, ["tensorboard"])) model_ppo.learn(total_timesteps=5000,log_interval=1000, progress_bar=True) model_ppo.save("ppo_cartpole_model") # model_ppo.save("ppo_lunar_model") del model_ppo del env
A2C 代码片段
import os from stable_baselines3.common.env_util import make_vec_env from stable_baselines3.common.logger import configure from stable_baselines3.common.vec_env import SubprocVecEnv # log_path_a2c = "log/a2c_cartpole_tensorboard/lunar-env/" log_path_a2c = "log/a2c_cartpole_tensorboard/" model_a2c.set_logger(configure(log_path_a2c, ["tensorboard"])) model_a2c.learn(total_timesteps=5000,log_interval=1000, progress_bar=True) model_a2c.save("a2c_cartpole_model") #model_a2c.save("a2c_lunar_model") del model_a2c del env
注:模型和环境的初始化代码是在其他独立的代码片段里完成的,这里只贴出了日志配置、训练及保存的核心部分。
目前A2C的代码完全能正常工作,TensorBoard里能生成我需要的所有图表,但PPO的代码就是无法生成有效日志。
我已经尝试过以下几种解决方法,但都没有效果:
- 参考官方文档使用了不同的日志配置语法,但结果还是只有A2C能正常生成有效日志
- 尝试在PPO代码里用writer替代logger来写入日志,虽然事件文件里有了内容,但TensorBoard无法正常加载图表,应该是我这段代码的逻辑有问题
- 重新安装了带
[EXTRA]标签的Stable Baselines3,问题依旧存在
有没有朋友遇到过类似的问题?或者能帮我看看哪里出了问题吗?
备注:内容来源于stack exchange,提问作者Alex Robert Petrovi膷
相关产品推荐
相关产品推荐

