(著)山たー
https://github.com/openai/gym/tree/master/gym/envs#how-to-create-new-environments-for-gym
を参考にする。日本語訳しているような感じだが、とりあえずは自分のメモ代わり。
レポジトリの作成
まずディレクトリ及びファイルの構造を次のようにする
gym-foo/ README.md setup.py gym_foo/ __init__.py envs/ __init__.py foo_env.py foo_extrahard_env.py
ディレクトリ名は赤にした。これらのファイルの中身を適切に設定する。2つの環境のClassを青の2つのファイル内で定義するという状況。
gym-foo / setup.py
親ディレクトリ内のsetup.py。必要なライブラリ等を書いておく。
from setuptools import setup setup(name='gym_foo', version='0.0.1', install_requires=['gym'] # And any other dependencies foo needs )
gym-foo / gym_foo / __init__.py
子ディレクトリ内の__init__.py
from gym.envs.registration import register register( id='foo-v0', entry_point='gym_foo.envs:FooEnv', ) register( id='foo-extrahard-v0', entry_point='gym_foo.envs:FooExtraHardEnv', )
gym-foo/gym_foo/envs/__init__.py
孫ディレクトリ内の__init__.py
from gym_foo.envs.foo_env import FooEnv from gym_foo.envs.foo_extrahard_env import FooExtraHardEnv
gym-foo/gym_foo/envs/foo_env.py
環境(Env)をClassとして定義する。foo_extrahard_env.pyも似たような中身。
import gym from gym import error, spaces, utils from gym.utils import seeding class FooEnv(gym.Env): metadata = {'render.modes': ['human']} def __init__(self): ... def step(self, action): ... def reset(self): ... def render(self, mode='human', close=False): ...
環境の使い方
import gym import gym_foo env = gym.make('foo-v0')
などとする。
コメントをお書きください
goalken (木曜日, 16 7月 2020 13:01)
This is a great thing, I think everyone feels this information is very valuable, thank you https://templerun3.co