matplotlib 在执行RL代理的训练循环期间,图未更新

vs91vp4v  于 2023-11-22  发布在  其他
关注(0)|答案(1)|浏览(105)

我目前正在做一个PPO强化学习项目,使用pytorch和gymnasium自定义环境。Mi idea是每10次训练迭代,显示一个带有状态轨迹和策略所采取的动作的图。问题是matplotlib图只在第一次正确显示,然后不会在下一次更新。
我以前实现的方法如下:图是环境类的一个属性,在自定义类的初始化过程中,调用plt.ion()方法,然后调用plt.subplots()初始化fig和axes属性,经过10次迭代后,清除图中的轴,并使用ax[i].step()方法再次绘制,最后调用plt.pause在执行训练循环之后重复该过程。
很可能问题是我不太理解matplotlib包的逻辑,解决这个问题的方法是修改两三行代码。我会感谢每一个建议。

ubof19bj

ubof19bj1#

几乎没有什么可继续的,所以我建议首先展示一些你使用的代码,以及到底发生了什么。
你提到使用plt.ion和plt.show,这不应该是必要的,因为ion是matplotlib的交互模式,这意味着图形会自动更新,而plt.show不需要使用。
此外,你正在使用健身房。健身房有功能内置的渲染数字。

import gym
import time
from IPython.display import clear_output

env = gym.make("Taxi-v3").env

env.render()
time.sleep(10)
clear_output(wait=True)
env.render()

字符串

相关问题