我正在尝试遵循 Nicholas Renotte 教程的“使用 Python 构建马里奥 AI 模型 | 游戏强化学习”,但由于出现一些错误而无法继续。
这是我的代码:
!pip install gym_super_mario_bros==7.3.0 nes_py
# Import the game
import gym_super_mario_bros
# Import the Joypad wrapper
from nes_py.wrappers import JoypadSpace
# Import the simplified controls
from gym_super_mario_bros.actions import SIMPLE_MOVEMENT
# Setup game
env = gym_super_mario_bros.make('SuperMarioBros-v0')
env = JoypadSpace(env, SIMPLE_MOVEMENT)
Run Code Online (Sandbox Code Playgroud)
这行代码: env = gym_super_mario_bros.make('SuperMarioBros-v0')导致以下错误:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_16900\3897944130.py in <module>
1 # Setup game
----> 2 env = gym_super_mario_bros.make('SuperMarioBros-v0')
3 env = JoypadSpace(env, SIMPLE_MOVEMENT)
D:\Anaconda\envs\gamesAi\lib\site-packages\gym\envs\registration.py in …Run Code Online (Sandbox Code Playgroud) python artificial-intelligence reinforcement-learning jupyter-notebook openai-gym
我已经在体育馆环境中工作了几个星期,通过在笔记本中使用以下命令,我在 Google Colab 中没有遇到任何问题:pip3 install gymnasium[box2d]\n但是,在不更改任何内容的情况下,我尝试再次运行该命令,但它突然停止安装 Box2d适当地。
我得到以下输出:
\nLooking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\nCollecting gymnasium[box2d]\n Downloading gymnasium-0.28.1-py3-none-any.whl (925 kB)\n \xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81 925.5/925.5 kB 19.7 MB/s eta 0:00:00\nRequirement already satisfied: numpy>=1.21.0 in /usr/local/lib/python3.10/dist-packages (from gymnasium[box2d]) (1.22.4)\nCollecting jax-jumpy>=1.0.0 (from gymnasium[box2d])\n Downloading jax_jumpy-1.0.0-py3-none-any.whl (20 kB)\nRequirement already satisfied: cloudpickle>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from gymnasium[box2d]) (2.2.1)\nRequirement already satisfied: typing-extensions>=4.3.0 in /usr/local/lib/python3.10/dist-packages (from gymnasium[box2d]) (4.5.0)\nCollecting farama-notifications>=0.0.1 (from gymnasium[box2d])\n Downloading Farama_Notifications-0.0.4-py3-none-any.whl (2.5 kB)\nCollecting box2d-py==2.3.5 (from gymnasium[box2d])\n Downloading box2d-py-2.3.5.tar.gz (374 kB)\n \xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81 374.4/374.4 kB 11.0 MB/s eta …Run Code Online (Sandbox Code Playgroud) 由Anaconda运行几乎所有来自OpenAi gym的spyder中的代码(例如此代码:https://gym.openai.com/evaluations/eval_y5dnhk0ZSMqlqJKBz5vJQw )我遇到以下错误消息:
DependencyNotInstalled: Found neither the ffmpeg nor avconv executables. On OS X, you can install ffmpeg via 'brew install ffmpeg'. On most Ubuntu variants, 'sudo apt-get install ffmpeg' should do it. On Ubuntu 14.04, however, you'll need to install avconv with 'sudo apt-get install libav-tools'.
Run Code Online (Sandbox Code Playgroud)
但是当我输入brew install ffmpeg终端时,我得到了Warning: ffmpeg-3.2 already installed没有任何反应.
有关如何解决此错误的任何想法?
我已经安装了 OpenAIgym和 ATARI 环境。我知道我可以在文档中找到所有 ATARI 游戏,但是有没有办法在 Python 中执行此操作,而无需打印任何其他环境(例如,不是经典的控制环境)
artificial-intelligence reinforcement-learning deep-learning openai-gym
在 OpenAI 健身房环境中训练时,我认为环境有时会“停止”。对于连续的许多帧,没有球可见/停止产卵。
这是健身房环境的错误吗?这是 Breakout-v0 游戏的一部分吗?
我还想知道 Breakout-v0 中可能的操作是什么。我有点想通了:
0 - 什么都不做/站着不动?
1 - 什么都不做/站着不动?
2 - 向右施加“力”?
3 - 向左施加“力”?
编辑:对于想知道我在说什么的人:请参阅此 gif:http : //imgur.com/a/pBLGX 5 到 4 条生命之间的过渡需要很多帧......有时休息时间甚至比这更长...
我正在使用gym版本 - '0.9.7'和mujoco_py版本1.50.1.41,Python 3.6.1 |Anaconda 4.4.0,安装在Mac上。
尝试时:
import gym
env = gym.make('Humanoid-v1')
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Traceback (most recent call last):
File "/Users/usr/gym/gym/envs/registration.py", line 139, in spec
return self.env_specs[id]
KeyError: 'Humanoid-v1'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/usr/gym/gym/envs/registration.py", line 163, in make
return registry.make(id)
File "/Users/usr/gym/gym/envs/registration.py", line 118, in make
spec = self.spec(id)
File "/Users/usr/gym/gym/envs/registration.py", line 147, in spec
raise error.DeprecatedEnv('Env {} not found (valid versions include {})'.format(id, …Run Code Online (Sandbox Code Playgroud) 我正在 tensorflow 中实现的健身房环境(BipedalWalker-v2)中运行强化学习程序。我手动设置了环境的随机种子,tensorflow 和 numpy 如下
os.environ['PYTHONHASHSEED']=str(42)
random.seed(42)
np.random.seed(42)
tf.set_random_seed(42)
env = gym.make('BipedalWalker-v2')
env.seed(0)
config = tf.ConfigProto(intra_op_parallelism_threads=1, inter_op_parallelism_threads=1)
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
# run the graph with sess
Run Code Online (Sandbox Code Playgroud)
但是,每次运行我的程序时都会得到不同的结果(不更改任何代码)。为什么结果不一致,如果我想获得相同的结果应该怎么做?
我能想到的唯一可能引入随机性的地方(神经网络除外)是
tf.truncated_normal用来生成随机噪声epsilon以实现噪声层np.random.uniform从重放缓冲区中随机选择样本我还发现我在前 10 集中得到的分数非常一致,但随后开始有所不同。损失等其他因素也显示出类似的趋势,但在数字上并不相同。
我还设置了“PYTHONHASHSEED”并按照@jaypops96 的描述使用单线程 CPU,但仍然无法重现结果。上面代码块中的代码已经更新
我找不到OpenAI Gym环境“ CartPole-v0”和“ CartPole-v1”之间差异的确切描述。
两种环境都有专用于它们的单独的官方网站(请参见1和2),尽管我只能在Gym github存储库中找到一个没有版本识别的代码(请参阅3)。我还检查了通过调试器准确加载了哪些文件,尽管它们似乎都加载了相同的上述文件。唯一的区别似乎是它们在内部分配的max_episode_steps和reward_threshold,可以如下访问。CartPole-v0的值为200 / 195.0,而CartPole-v1的值为500 / 475.0。其余的乍一看似乎是相同的。
import gym
env = gym.make("CartPole-v1")
print(self.env.spec.max_episode_steps)
print(self.env.spec.reward_threshold)
Run Code Online (Sandbox Code Playgroud)
因此,如果有人可以为我描述确切的差异或将我转发到正在这样做的网站,我将不胜感激。非常感谢你!
我尝试使用 openAI Gym 学习在二十一点中应用的 MC-蒙特卡罗方法。我不明白这些行:
def __init__(self, natural=False):
self.action_space = spaces.Discrete(2)
self.observation_space = spaces.Tuple((
spaces.Discrete(32),
spaces.Discrete(11),
spaces.Discrete(2)))
self.seed()
Run Code Online (Sandbox Code Playgroud)
来源:https : //github.com/openai/gym/blob/master/gym/envs/toy_text/blackjack.py
有人知道我们可以设置游戏初始状态的任何 OpenAI Gym 环境吗?例如,我发现 MountainCarContinuous-v0 可以做这样的事情,以便我们可以选择汽车启动的时间点。但是,我正在寻找另一个更复杂的环境。在此先感谢您的帮助!
openai-gym ×10
python ×3
python-3.x ×2
blackjack ×1
box2d ×1
ffmpeg ×1
random ×1
random-seed ×1
spyder ×1
tensorflow ×1