我正在尝试使用Stable-Baselines3和OpenAI Gym通过PPO算法训练一个自定义环境。不知为何,当我尝试训练PPO模型时,这个自定义环境的回合统计数据没有被报告出来。
我使用的代码如下(为了简洁,我没有包含CustomEnv的代码):
env = CustomEnv(mode = "discrete")
env = Monitor(env, log_dir)
model = PPO("MlpPolicy", env, verbose=1, tensorboard_log = log_dir)
timesteps = 5000
for i in range(3):
model.learn(total_timesteps = timesteps, reset_num_timesteps = False, tb_log_name = "PPO")
model.save(f"{models_dir}/car_model_{timesteps * i}")
下图展示了上述代码的输出(图片右侧),图片左侧展示了我用于调试的虚拟环境的常规输出。
我已经尝试添加了以下代码行:
env = Monitor(env, log_dir)
但这并没有改变输出结果。
回答:
已解决:存在一个特殊情况,环境没有结束,done变量一直保持False。
修复此错误后,回合统计数据重新出现。