有没有一种方法可以实现 OpenAI 的环境,其中每一步的动作空间都会发生变化?
我创建了一个非常简单的 OpenAI 健身房 ( banana-gym) 并想知道我是否应该/如何实现env.seed(0).
例如,参见https://github.com/openai/gym/issues/250#issuecomment-234126816。
我正在研究 openai 健身房提供的 CartPole-v0。我注意到我的程序从来没有超过 200。在某些时候它停留在 200 并且不会更多。我想知道是否有我在 openai 健身房中遗漏的任何配置。有没有人发现这个问题?
我正在尝试使用复古模块和 jupyter 笔记本,我似乎将它安装!pip install retro到了下载/安装正常的位置。
但是当我尝试时import retro出现错误
`
Traceback (most recent call last):
File "/home/benbartling/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2963, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-1-81066d3a41c5>", line 1, in <module>
import retro
File "/home/benbartling/anaconda3/lib/python3.6/site-packages/retro/__init__.py", line 206
print "%s: %s" % (key, value)
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
有人会有什么想法吗?谢谢
我正在使用 Gym 工具包来创建我自己的 env 和 keras-rl 在代理中使用我的 env。问题是我的行动空间发生了变化,这取决于实际状态。例如,我有 46 种可能的操作,但在特定状态下只有 7 种可用,而且我无法找到对其进行建模的方法。
我读过这个问题open-ai-environment-with-change-action-space-after-each-step
但这并没有解决我的问题。
在 Gym 文档中没有执行此操作的说明,只有他们的 Github 存储库(仍然打开)上的一个问题。我无法理解代理(keras-rl、dqn 代理)如何选择一个动作,它是随机选择的吗?但从哪里来?
有人可以帮助我吗?想法?
我按照 OpenAI Gym 的安装说明进行操作,但完整安装出现错误“无法为 mujoco-py 构建轮子”
pip install gymimport gym在我的笔记本电脑上工作正常,也import mujoco_py可以工作,但我仍然收到“无法构建轮子错误”
如果有人可以解释为什么我会收到此无效语法错误,那将会很有用。
(universe) abhimanyu@abhimanyu-HP-ProBook-440-G3:~/gym$ pip install -e .'[all]'
Obtaining file:///home/abhimanyu/gym
Requirement already satisfied: scipy in /home/abhimanyu/anaconda3/envs/universe/lib/python2.7/site-packages (from gym==0.10.8) (1.1.0)
Requirement already satisfied: numpy>=1.10.4 in /home/abhimanyu/anaconda3/envs/universe/lib/python2.7/site-packages (from gym==0.10.8) (1.15.3)
Requirement already satisfied: requests>=2.0 in /home/abhimanyu/anaconda3/envs/universe/lib/python2.7/site-packages (from gym==0.10.8) (2.10.0)
Requirement already satisfied: six in /home/abhimanyu/anaconda3/envs/universe/lib/python2.7/site-packages (from gym==0.10.8) (1.11.0)
Requirement already satisfied: pyglet>=1.2.0 in /home/abhimanyu/anaconda3/envs/universe/lib/python2.7/site-packages (from gym==0.10.8) (1.3.2)
Requirement already satisfied: box2d-py>=2.3.5 in /home/abhimanyu/anaconda3/envs/universe/lib/python2.7/site-packages (from gym==0.10.8) (2.3.5)
Collecting mujoco_py>=1.50 …Run Code Online (Sandbox Code Playgroud) 我正在 OpenAI Gym 中创建自定义环境,但真的不明白,action_space 是做什么用的?我应该在里面放什么?准确地说,我不知道 action_space 是什么,我没有在任何代码中使用它。而且我在互联网上没有找到任何东西,什么可以正常回答我的问题。
今天在openai-gym环境下尝试实现一个rl-agent的时候,发现一个问题,好像所有的agent都是从最初始的状态开始训练的:env.reset(),即
import gym
env = gym.make("CartPole-v0")
initial_observation = env.reset() # <-- Note
done = False
while not done:
action = env.action_space.sample()
next_observation, reward, done, info = env.step(action)
env.close() # close the environment
Run Code Online (Sandbox Code Playgroud)
所以很自然地,代理可以沿着路线行事env.reset() -(action)-> next_state -(action)-> next_state -(action)-> ... -(action)-> done,这是一个插曲。但是,代理如何从特定状态(如中间状态)开始,然后从该状态采取行动?例如,我从重放缓冲区中采样了一个体验,即(s, a, r, ns, done),如果我想训练代理直接从 state 开始,然后ns使用 a 获取动作Q-Network,然后n-step向前迈出一步,该怎么办。类似的东西:
import gym
env = gym.make("CartPole-v0")
initial_observation = ns # not env.reset()
done = False
while not done:
action = …Run Code Online (Sandbox Code Playgroud) 我想模拟自杀烧伤来学习和理解火箭着陆。OpenAI 健身房已经有一个 LunarLander 环境,用于训练强化学习代理。我正在使用这个环境来模拟 python 中的自杀烧伤。我已经(x,y)从这个环境的状态向量的前两个值中提取了坐标。根据这些值,将y坐标视为高度;我已经使用这些方程计算了降落着陆器的速度和加速度
velocity(v) = delta_y/ delta_t
acceleartion(a) = delta_v/delta_t
Run Code Online (Sandbox Code Playgroud)
随着模拟逐步递增,时间差delta_t被视为 1。无法找到 LunarLander 的重力参数,我给了它一个默认值g=1。然后使用此reddit 评论中的以下等式
开始自杀燃烧的高度 = [(当前高度)(重力加速度)+(1/2)(当前速度)2 ] /(发动机加速度)
我试图计算高度以开始自杀烧伤。这是我的完整 python 代码。我只计划使用四个可能操作中的两个操作 0(什么都不做)和 2(启动主引擎)。
import gym
env = gym.make('LunarLander-v2')
env.seed(0)
g = 1
delta_t = 1
action = 0
state = env.reset()
# x0 = state[0]
y0 = state[1]
v0 = 0
for t in range(3000):
state, reward, done, _ = env.step(action)
y = …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 google colab 中训练 DQN,以便我可以测试 TPU 的性能。不幸的是,我收到以下错误:
import gym
env = gym.make('LunarLander-v2')
AttributeError: module 'gym.envs.box2d' has no attribute 'LunarLander'
Run Code Online (Sandbox Code Playgroud)
我知道这是一个常见的错误,我以前在本地机器上遇到过这个错误。我能够使用以下命令修复它:
!pip install box2d box2d-kengz
!pip install Box2D
!pip install -e '.[box2d]'
Run Code Online (Sandbox Code Playgroud)
虽然这在我的本地机器上有效,但在 google colab 上不是。我无法摆脱错误。有没有人有办法解决吗?
python machine-learning neural-network openai-gym google-colaboratory
openai-gym ×10
python ×4
anaconda ×1
game-physics ×1
keras-rl ×1
physics ×1
python-3.x ×1
random ×1
random-seed ×1
simulation ×1