Open24
Gym Retro 使ってみる

概要
以下目的達成のために、試しにGymRetro使ってみる。
公式

セットアップ

pipインストールしようとしたらエラーになったので、
Anacondaで専用環境作る
conda create -n GymRetroEnv python=3.8

うまく行った。
まずは、環境切り替え
conda activate GymRetroEnv
の後に、GymRetro インストール
pip install gym-retro

romファイルがあるパスを指定して、retroGymにインポート。
多分nesのファイル名を合わせる必要がある。
python -m retro.import 'D:\xxx'

以下を実行したらエラー。
gymの0.26から hash_seed
関数が削除されたっぽい。
env = retro.make(game='SuperMarioBros-Nes')
以下を参考に 0.25 に落として解決。

gym 0.21.0 に下げないとだめかも。
ただ下げようとするとエラー。
今度は setuptoolのバージョンが問題っぽい。
以下を参考に 65.4.1 に戻してみる。

だめ。
そもそも記法の問題?

上のリンクを参考に、以下コマンド入れたら、
pip install --upgrade pip wheel==0.38.4 setuptools==65.5.1
下が通った!
pip install gym==0.21.0

動いた!
しばらくするとエラーが出るので、正しい状況確認できたら、
セットアップ手続きを記事化する。

GameOver時にエラー
GameOverになった時に以下のようなエラーが出る。
File "C:\Users\Develop\.conda\envs\GymRetroEnv\lib\site-packages\gym\envs\classic_control\rendering.py", line 458, in __del__
self.close()
File "C:\Users\Develop\.conda\envs\GymRetroEnv\lib\site-packages\gym\envs\classic_control\rendering.py", line 454, in close
self.window.close()
File "C:\Users\Develop\.conda\envs\GymRetroEnv\lib\site-packages\pyglet\window\win32\__init__.py", line 299, in close
super(Win32Window, self).close()
File "C:\Users\Develop\.conda\envs\GymRetroEnv\lib\site-packages\pyglet\window\__init__.py", line 823, in close
app.windows.remove(self)
File "C:\Users\Develop\.conda\envs\GymRetroEnv\lib\_weakrefset.py", line 109, in remove
self.data.remove(ref(item))
KeyError: <weakref at 0x0000020864A09A40; to 'Win32Window' at 0x0000020864606C70>

CUDA


nvidia-smi
でGPU情報表示



以下コマンドで tourch のバージョン合わせて GPU 使えるようになった。
cuda は 12.4 だけど、当該バージョンなさそうだったので、 12.1 でやったらう一応動いてる。
conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=12.1 -c pytorch -c nvidia

ライブラリまわりでエラー出たので、次のpipもやった
pip install chardet
pip install requests
pip install charset_normalizer
作成者以外のコメントは許可されていません