标签: openai-gym

OpenAI 健身房:何时需要重置?

虽然我可以设法让示例和我自己的代码运行,但我对 OpenAI 健身房 API 背后的真实语义/期望更加好奇,尤其是 Env.reset()

什么时候需要重置?每集结尾?还是只有在创建环境之后?

我宁愿认为在每一集之前都是有道理的,但我无法明确地阅读!

python machine-learning reinforcement-learning openai-gym

3
推荐指数
1
解决办法
2365
查看次数

3
推荐指数
2
解决办法
2万
查看次数

是否可以修改 OpenAI 环境?

我想在 OpenAI 环境中修改一些东西。如果我们使用Cartpole示例,那么我们可以编辑类 init 函数中的内容,但使用Box2D它的环境似乎并不那么简单。

例如,考虑BipedalWalker环境。

在这种情况下,我将如何编辑SPEED_HIPSPEED_KNEE变量之类的内容?

reinforcement-learning openai-gym

3
推荐指数
1
解决办法
2394
查看次数

使用 GPU 多处理了解 openAIgym 和 Optuna 超参数调整

我正在使用 openAI 的stable-baselines训练强化学习代理。我还使用optuna优化代理超参数。

为了加快该过程,我在不同的函数调用中使用多重处理。具体参见SubprocVecEnv此处文档study.optimize中的建议(分别在 1.15.3 和 1.10.4 下)。

import numpy as np
from stable_baselines.common.vec_env import SubprocVecEnv
from stable_baselines import PPO2
from stable_baselines.common.policies import MlpLnLstmPolicy
import optuna

n_cpu = 4


def optimize_ppo2(trial):
    """ Learning hyperparamters we want to optimise"""
    return {
        'n_steps': int(trial.suggest_loguniform('n_steps', 16, 2048)),
        'gamma': trial.suggest_loguniform('gamma', 0.9, 0.9999),
        'learning_rate': trial.suggest_loguniform('learning_rate', 1e-5, 1.),
        'ent_coef': trial.suggest_loguniform('ent_coef', 1e-8, 1e-1),
        'cliprange': trial.suggest_uniform('cliprange', 0.1, 0.4),
        'noptepochs': int(trial.suggest_loguniform('noptepochs', 1, 48)),
        'lam': trial.suggest_uniform('lam', 0.8, 1.)
    }


def optimize_agent(trial):
    """ …
Run Code Online (Sandbox Code Playgroud)

python gpu reinforcement-learning openai-gym

3
推荐指数
1
解决办法
2965
查看次数

gym.spaces.box 观察状态理解

因此,我尝试使用gym 在自定义环境中执行一些强化学习,但是我对spaces.box 的工作原理感到非常困惑。每个参数的含义是什么?例如,如果我有一个涉及大量信息的游戏状态,例如角色的生命值、他们的统计数据和能力,我不确定这样的东西是否会在 Box 中表示为观察状态。另外,在一款具有多种能力的游戏中,最好对它们进行一次性编码,还是将它们保留为常规增量 Id,因为我想使用神经网络来查找预期的 Q 值。

reinforcement-learning deep-learning openai-gym

3
推荐指数
1
解决办法
4079
查看次数

健身房的 box 2d (openAI) 未安装成功(pip 错误)

我正在尝试使用 OpenAI 执行以下代码:

import gym
env = gym.make('CarRacing-v0')
env.reset() 

for _ in range(1000):
 env.render()
 env.step(env.action_space.sample())
Run Code Online (Sandbox Code Playgroud)

但它会抛出错误:

fn = getattr(mod, attr_name) AttributeError: 模块 'gym.envs.box2d' 没有属性 'CarRacing'

然后我尝试通过 pip install box2d-py 安装 box2d 并抛出此错误:

ERROR: Command errored out with exit status 1:
     command: 'C:\Users\Junior\Anaconda\envs\gym\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Junior\\AppData\\Local\\Temp\\pip-install-w8awn22p\\box2d-py\\setup.py'"'"'; __file__='"'"'C:\\Users\\Junior\\AppData\\Local\\Temp\\pip-install-w8awn22p\\box2d-py\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Junior\AppData\Local\Temp\pip-record-netg1nlq\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\Junior\Anaconda\envs\gym\Include\box2d-py'
         cwd: C:\Users\Junior\AppData\Local\Temp\pip-install-w8awn22p\box2d-py\
    Complete output (16 lines):
    Using setuptools (version 45.2.0.post20200210).
    running install
    running build
    running build_py …
Run Code Online (Sandbox Code Playgroud)

python machine-learning reinforcement-learning box2d openai-gym

3
推荐指数
1
解决办法
1万
查看次数

健身房的自定义环境错误:无法重新注册 ID

我想创建自己的健身房环境。我已按照此处解释的步骤进行操作: https: //github.com/openai/gym/blob/master/docs/creating-environments.md。根据他们的建议,我创建了环境(链接:https://drive.google.com/open? id=1RmcSBZYKCARaNsdlOsACrk9ls8snqxlj )。安装并运行后,将创建环境并显示打印输出“已创建,步骤”。但是,当我再次按下“运行”按钮(spyder ide:python3.7)时,它向我显示“错误:无法重新注册 id:foo-v0”。如果我按“重新启动内核”按钮,问题将暂时消失。但再次“运行”会显示相同的错误。请帮我解决这个问题。

runfile('F:/gym-foo/a.py', wdir='F:/gym-foo')
Created
Step

runfile('F:/gym-foo/a.py', wdir='F:/gym-foo')
Reloaded modules: gym_foo, gym_foo.envs, gym_foo.envs.foo_env
Traceback (most recent call last):

  File "F:\gym-foo\a.py", line 3, in <module>
    env = gym.make('gym_foo:foo-v0')

  File "C:\Users\nasif\anaconda3\lib\site-packages\gym\envs\registration.py", line 142, in make
    return registry.make(id, **kwargs)

  File "C:\Users\nasif\anaconda3\lib\site-packages\gym\envs\registration.py", line 86, in make
    spec = self.spec(path)

  File "C:\Users\nasif\anaconda3\lib\site-packages\gym\envs\registration.py", line 106, in spec
    importlib.import_module(mod_name)

  File "C:\Users\nasif\anaconda3\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)

  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import

  File "<frozen importlib._bootstrap>", line …
Run Code Online (Sandbox Code Playgroud)

python-3.x openai-gym

3
推荐指数
1
解决办法
5661
查看次数

例外:ms_pacman 缺少 ROM,请参阅 https://github.com/openai/atari-py#roms 了解说明

我对 OpenAi 健身房完全陌生,我刚刚安装了健身房,然后尝试为其创建环境, env = gym.make('MsPacman-v0')所以我收到以下错误:

---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-21-e04adf623175> in <module>
----> 1 env = gym.make('MsPacman-v0')

~\Anaconda3\envs\env_project\lib\site-packages\gym\envs\registration.py in make(id, **kwargs)

~\Anaconda3\envs\env_project\lib\site-packages\gym\envs\registration.py in make(self, path, **kwargs)

~\Anaconda3\envs\env_project\lib\site-packages\gym\envs\registration.py in make(self, **kwargs)

~\Anaconda3\envs\env_project\lib\site-packages\gym\envs\atari\atari_env.py in __init__(self, game, 
mode, difficulty, obs_type, frameskip, repeat_action_probability, full_action_space)

~\Anaconda3\envs\env_project\lib\site-packages\atari_py\games.py in get_game_path(game_name)
 18     path = os.path.join(_games_dir, game_name) + ".bin"
 19     if not os.path.exists(path):
---> 20         raise Exception('ROM is missing for %s, see https://github.com/openai/atari-py#roms 
for instructions' % (game_name,))
 21     return path
 22 

Exception: ROM is …
Run Code Online (Sandbox Code Playgroud)

python machine-learning reinforcement-learning jupyter-notebook openai-gym

3
推荐指数
1
解决办法
1万
查看次数

ValueError:给定的 numpy 数组中至少有一个步幅为负,并且当前不支持具有负步幅的张量

我正在使用 RL 编写自动驾驶代码。我正在使用稳定的基线3和开放的人工智能健身房环境。我在 jupyter 笔记本中运行以下代码,但出现以下错误:

# Testing our model
episodes = 5 # test the environment 5 times
for episodes in range(1,episodes+1): # looping through each episodes
    bs = env.reset() # observation space
    # Taking the obs and passing it through our model
    # tells that which kind of the action is best for our work
    done = False 
    score = 0
    while not done:
        env.render()
        action, _ = model.predict(obs) # now using model here # returns model action and …
Run Code Online (Sandbox Code Playgroud)

python reinforcement-learning openai-gym stable-baselines

3
推荐指数
1
解决办法
7410
查看次数

如何解释OpenAI健身房中RAM环境的观察?

在一些OpenAI健身房环境中,有一个"ram"版本.例如:Breakout-v0Breakout-ram-v0.

使用时Breakout-ram-v0,每个观察是一个长度为128的数组.

问题:如何将Breakout-v0(160 x 210图像)的观察值转换为观察形式Breakout-ram-v0(长度为128的数组)?

我的想法是训练模型Breakout-ram-v0并显示使用Breakout-v0环境播放的训练模型.

python openai-gym

2
推荐指数
1
解决办法
2251
查看次数