我正在进行一个针对《打砖块》游戏的强化学习项目,我的环境(env)设置为 ALE/Breakout-v5。
我之前训练了一个模型,并保存了它,现在我想在 Jupyter 笔记本中查看它的输出,它正确计算了平均奖励,但没有显示任何环境。只有文本输出。
这是项目代码:
import osfrom stable_baselines3.common.vec_env import VecFrameStackfrom stable_baselines3 import A2Cfrom stable_baselines3.common.evaluation import evaluate_policyenv = make_atari_env('ALE/Breakout-v5', n_envs=1, seed=0)env = VecFrameStack(env, n_stack=4)a2c_path = os.path.join('Training', 'Saved Models', 'A2C_Breakout_Model')model = A2C.load(a2c_path, env)evaluate_policy(model, env, n_eval_episodes=100, render=True)
如何可视化环境?我使用的是 Python 3.11 和 Jupyter Notebook。
回答:
我无法通过 evaluate_policy 直接渲染环境,但这里有一个我使用的解决方法,通过加载预训练模型并渲染预测的下一个动作:
vec_env = model.get_env() obs = vec_env.reset()for i in range(1000): action, _states = model.predict(obs, deterministic=True) obs, rewards, dones, info = vec_env.step(action) vec_env.render("human")