关于GYM的render mode = ‘human’渲染问题
关于GYM的render mode = 'human’渲染问题
在使用render_mode = 'human’时,会出现无论何时都会自动渲染动画的问题,比如下述算法
此时就算是在训练过程中也会调用进行动画的渲染,极大地降低了效率,毕竟我的目的只是想通过渲染检测一下最终的效果而已
import Q_learning as ql import gym env = gym.make("CliffWalking-v0", render_mode='human') Q = ql.train(env, 1000) state = env.reset()[0] env.render() while True: action = Q[state].argmax() next_state, reward, done, _, _ = env.step(action) state = next_state if done: break env.close()
为了解决上述问题,可以采用如下的方法
在开始将mode设置为none,当想要渲染时再设置为human
import Q_learning as ql import gym # 在训练期间关闭渲染 env = gym.make("CliffWalking-v0", render_mode=None) Q = ql.train(env, 1000) # 训练结束后开启渲染 env = gym.make("CliffWalking-v0", render_mode='human') state = env.reset()[0] env.render() while True: action = Q[state].argmax() next_state, reward, done, _, _ = env.step(action) state = next_state if done: break env.close()