在 google colab 中运行健身房 atari?

问题描述 投票:0回答:3

因此,我希望使用 GPU/TPU 在 Colab 上训练一个模型,因为我的本地机器没有 GPU/TPU。我不关心可视化训练,我只是想让 colab 来完成大部分工作。

将我的 .ipynb 导入 colab 并在我尝试使用任何 atari 游戏创建环境时运行,我收到错误:

---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-21-8d6f8581e7f9> in <module>()
----> 1 env = gym.make('SpaceInvaders-v0')
      2 height, width, channels = env.observation_space.shape
      3 actions = env.action_space.n
      4 
      5 model = build_model(height,width, channels,actions)

4 frames
/usr/local/lib/python3.7/dist-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 missing for space_invaders, see https://github.com/openai/atari-py#roms for instructions

在本地,我遇到了这个问题,并按照 github 上的步骤进行修复,该问题有效,但我似乎无法让 colab 做类似的事情。我在网上找到了大量的教程,它可以正常工作,当我运行他们的合作实验室时,我遇到了同样的问题,所以我有点不知所措。

提前致谢

python google-colaboratory reinforcement-learning
3个回答
3
投票

有一个方便的 AutoROM 软件包,您可以使用它自动安装 ROM。只需在任何 Jupyter 笔记本、Colab 笔记本或 Kaggle 内核中运行以下命令即可:

%pip install -U gym>=0.21.0
%pip install -U gym[atari,accept-rom-license]

详情:

  1. 使用

    %pip
    而不是
    !pip
    可确保将包安装到与笔记本运行所在的相同 Python 环境中。

  2. accept-rom-license
    选项安装
    autorom
    软件包,其中包括
    AutoROM
    命令。它还使用
    --accept-license
    选项自动运行此命令。如果您在没有此选项的情况下运行它,您会收到以下消息,因此请注意。我的感觉是,将它们用于研究和教育目的是可以的,但我不是律师:

    AutoROM will download the Atari 2600 ROMs.
    They will be installed to:
        [...]/site-packages/AutoROM/roms
    
    Existing ROMs will be overwritten.
    
    I own a license to these Atari 2600 ROMs.
    I agree to not distribute these ROMs and wish to proceed: [Y/n]:
    
  3. 运行

    AutoROM --help
    以获得更多选项。


0
投票

所以我找到了解决方案。您首先需要从 http://www.atarimania.com/rom_collection_archive_atari_2600_roms.html

下载 ROM

解压 .rar 文件,然后解压 HC Roms 和 Roms 文件夹。

接下来将文件夹上传到 Colab 或您的 Google 云端硬盘,然后将其链接到您的 Colab。

从这里运行:

!python -m atari_py.import_roms <path to Rom folder>

我只需导入 ROMS 文件夹,但根据您想要的环境,您可能还必须为 HC ROMS 运行它。

让 colab 做它的事情,然后尝试再次创建环境,它应该可以工作,让它运行 DQN 大约 6 小时,没有任何问题。

希望这对人们有帮助。


0
投票

我参加了 Udemy 课程,我们在 Google Colab 中培训了一些代理。文件顶部有以下代码:

!pip install gymnasium
!pip install "gymnasium[atari, accept-rom-license]"
!apt-get install -y swig
!pip install gymnasium[box2d]

然后创建环境:

import gymnasium as gym
env = gym.make('LunarLander-v2')
state_shape = env.observation_space.shape
state_size = env.observation_space.shape[0]
number_actions = env.action_space.n
print('State shape: ', state_shape)
print('State size: ', state_size)
print('Number of actions: ', number_actions) 

这适用于多种环境,包括 Atari Pong、Breakout 等。

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.