0
0

More than 1 year has passed since last update.

PFRL(v0.4.0)を利用して強化学習プログラムを動かしてみる件

Posted at

PFRL(v0.3.0)を利用して強化学習プログラムを動かしてみる件 にてPFRL(v0.3.0)を動かしてみましたが、当該記事を書いた直後に、v0.4.0がデプロイされたので、それを試してみました。
以下は私の環境です。

Ubuntu 20.04
NVIDIA-SMI 530.30.02 
GeForce RTX 2080 Ti
CUDA 12.1

とりあえず、クリーンな仮想環境を利用して、python3.8ベースで環境を作成します。

$ virtualenv env -p python3.8
$ source env/bin/activate
(env)$ pip install pfrl

そして、pfrlのexampleである、train_dqn_gym.pyを動かしてみます。

(env)$ python train_dqn_gym.py
...
ModuleNotFoundError: No module named 'packaging'

packagingを入れて、ふたたびチャレンジします。

(env)$ pip install packaging
...
gym.error.DeprecatedEnv: Environment version v0 for `Pendulum` is deprecated. Please use `Pendulum-v1` instead.

デフォルトでは、Pendulum-v0になっているので、これをPendulum-v1に変更して再度実行(プログラム内の~v0を片っ端から変更)。

(env)$ python train_dqn_gym.py
...
 File "*/env/lib/python3.8/site-packages/pfrl/utils/batch_states.py", line 13, in <genexpr>
    return tuple(x.to(device) for x in batched)
AttributeError: 'dict' object has no attribute 'to'

xにtoの属性がない(xはdict)。gymとかtorchのバージョンによって、利用される型が違うのではないかと推測(現時点のgymのバージョンは0.26.2)。
とりあえず、gymのbug reportを見つけ、gymのバージョンを落としてみることに。bug reportでは、0.19.0にダウングレードしていましたが、Pendulum-v1に未対応だったので、0.22.0にダウングレードしました。

(env) $ pip install gym==0.22.0
(env) $ python train_dqn_gym.py
...
ModuleNotFoundError: No module named 'pygame'

pygameをpipで入れて、再度実行すると

(env) $ python train_dqn_gym.py 
Output files are saved in results/20230728T121809.087138
WARNING: Since https://github.com/pfnet/pfrl/pull/112 we have started setting `eval_during_episode=True` in this script, which affects the timings of evaluation phases.
INFO:pfrl.experiments.train_agent:outdir:results/20230728T121809.087138 step:200 episode:0 R:-1.1296703617134025
INFO:pfrl.experiments.train_agent:statistics:[('average_q', nan), ('average_loss', nan), ('cumulative_steps', 200), ('n_updates', 0), ('rlen', 200)]
INFO:pfrl.experiments.train_agent:outdir:results/20230728T121809.087138 step:400 episode:1 R:-1.2355617196091453
INFO:pfrl.experiments.train_agent:statistics:[('average_q', nan), ('average_loss', nan), ('cumulative_steps', 400), ('n_updates', 0), ('rlen', 400)]
...

なんとか動きました。

0
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
0
0