« ^ »
[WIP]

Gymnasiumを使う

所要時間: 約 2分

OpenAI Gymは、OpenAIが管理しなくなり、フォークされたGymnasiumに開発が移行する事になった。

環境を作りながらサンプルプログラムを実行する

Gymnasiumの公式のドキュメントを元に、トップページに掲載されているサンプルプログラムを実行する。Gymnasiumには実行環境をインストールコマンドで選択し、インストールできる。トップページに掲載されているサンプルプログラムの場合、Box2d環境を用いて実装されている。そこでBox2d環境を準備する。

この環境はswigコマンドが存在する事を期待している。そこでまずswigをインストールする。

brew install swig
swigをインストールする。

次にインストールオプション付きでGymnasiumをインストールする。PyGameにも依存しているが、PyGameは自動的にインストールされる。

pip install gymnasium[box2d]
Requirement already satisfied: gymnasium[box2d] in /private/var/ng/python-venv/py312/lib/python3.12/site-packages (0.29.1)
Requirement already satisfied: numpy>=1.21.0 in /private/var/ng/python-venv/py312/lib/python3.12/site-packages (from gymnasium[box2d]) (1.26.1)
Requirement already satisfied: cloudpickle>=1.2.0 in /private/var/ng/python-venv/py312/lib/python3.12/site-packages (from gymnasium[box2d]) (3.0.0)
Requirement already satisfied: typing-extensions>=4.3.0 in /private/var/ng/python-venv/py312/lib/python3.12/site-packages (from gymnasium[box2d]) (4.8.0)
Requirement already satisfied: farama-notifications>=0.0.1 in /private/var/ng/python-venv/py312/lib/python3.12/site-packages (from gymnasium[box2d]) (0.0.4)
Requirement already satisfied: box2d-py==2.3.5 in /private/var/ng/python-venv/py312/lib/python3.12/site-packages (from gymnasium[box2d]) (2.3.5)
Requirement already satisfied: pygame>=2.1.3 in /private/var/ng/python-venv/py312/lib/python3.12/site-packages (from gymnasium[box2d]) (2.5.2)
Requirement already satisfied: swig==4.* in /private/var/ng/python-venv/py312/lib/python3.12/site-packages (from gymnasium[box2d]) (4.1.1)
Gymnasiumをインストールする。

トップページに掲載されているサンプルプログラムをファイルに記述する。

import gymnasium as gym
env = gym.make("LunarLander-v2", render_mode="human")
observation, info = env.reset(seed=42)
for _ in range(1000):
   action = env.action_space.sample()  # this is where you would insert your policy
   observation, reward, terminated, truncated, info = env.step(action)

   if terminated or truncated:
      observation, info = env.reset()

env.close()

実行する。

python simple.py

https://res.cloudinary.com/symdon/image/upload/v1698560765/blog.symdon.info/1678927377/simple_pucei0.png

起動できた。