运行 google Colab 中的 gym atari?

Running gym atari in google colab?

所以我希望使用 GPU/TPU 在 colab 上训练模型,因为我的本地机器没有。我不介意将训练可视化,我只想让 colab 完成大部分工作。

将我的 .ipynb 导入 colab 并 运行ning 时,只要我尝试使用任何 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 做类似的事情。我在网上找到了大量的教程,它们都可以正常工作,当我 运行 他们的 colab 时,我遇到了同样的问题,所以我有点不知所措。

提前致谢

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

下载 rom

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

接下来将文件夹上传到 colab 或您的 Google 驱动器,然后 link 将其上传到您的 colab。

从这里开始 运行:

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

我只需要导入 ROM 文件夹,但取决于您想要的环境,对于 HC ROM,您可能还需要 运行 它。

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

希望这对人们有所帮助。

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

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

详情:

  1. 使用 %pip 而不是 !pip 可确保将软件包安装到与笔记本 运行ning 相同的 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 更多选项。