LoginSignup
1
0

More than 1 year has passed since last update.

PFRLでatari_wrapperを使うときの注意

Posted at

PFRLでAtariの学習を走らせようと思ったときに,バージョン周りの問題で動かなかったので,その事例と解決方法をメモしておく.もしかしたら,最新のcommitで解決済みかもしれないが.

AttributeError: 'numpy.random._generator.Generator' object has no attribute 'randint'

atari_wrapperのnoopの付近で発生するエラー.gymの方のenvの初期化ではちゃんとRandomNumberGenerator()が入るはずなのに(初期化時はNoneが入り,呼び出したときに初めてRandomNumberGeneratorが入る),なぜかnumpyの方のGeneratorで初期化されてしまう.numpyの方のGeneratorにはrandintが無いので,エラーが出る.
原因はおそらくALE (Arcade Learning Environment)を作るale-py.最新バージョンの0.7.5だとうまく行かず,0.7.4にダウングレードすると動くようになる.randintは今後消える可能性があるので,理想的にはこれを使わないのが一番ではある.

pip install ale-py==0.7.4

ImportError: cannot import name 'Monitor' from 'gym.wrappers'

wrapper.monitor周りのエラー.これについては調べればすぐに解決方法が見つかるが,gymのバージョンが0.23.0以上の場合に発生するエラー.0.22.0以下にダウングレードすれば解決する.

pip install gym[atari]==0.22.0

まとめ

上記をまとめると,以下のようにインストールすれば動く (はず (python==3.8.4))

pip install gym[atari, accept-rom-license]==0.22.0
pip install ale-py==0.7.4
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0