我目前正在学习强化学习,并希望使用它在赛车-V0环境。我已经成功地使用了PPO算法,现在我想使用DQN算法,但是当我想训练模型时,它给了我这个错误:
AssertionError:该算法只支持作为操作空间()的作用空间,但支持Box(-1 ).0。提供了0.,1.1.1.,(3,),float32)
这是我的代码:
import os
import gym
from stable_baselines3 import DQN
from stable_baselines3.common.vec_env import DummyVecEnv
from stable_baselines3.common.evaluation import evaluate_policy
environment_name = 'CarRacing-v0'
env = gym.make(environment_name)
#Test Environment
episodes = 5
for episode in range(1, episodes+1):
obs = env.reset()
done = False
score = 0
while not done:
env.render()
action = env.action_space.sample()
obs, reward, done, info = env.step(action)
score += reward
print('Episode:{} Score:{}'.format(episode, score))
env.close()
env = gym.make(environment_name)
env = DummyVecEnv([lambda: env])
log_path = os.path.join('Training', 'Logs')
model = DQN('CnnPolicy', env, verbose=1, tensorboard_log = log_path)我在这个项目中使用jupyter笔记本。
发布于 2022-03-31 07:41:53
不幸的是,稳定的基线DQN实现不支持持续的操作。请参考这表检查哪些算法与您的操作空间匹配!
发布于 2022-09-12 11:52:05
DQN不支持https://stable-baselines3.readthedocs.io/en/master/guide/algos.html中的Box连续操作空间,但是您可以在环境中使用DQN而不是Box。查看此网站,以获得具有离散操作空间的CarRacing env。
https://stackoverflow.com/questions/71686535
复制相似问题