CarPole サンプル

強化学習

2023/11時点,gymのメンテは中止とのこと.

後継のgymnasiumを利用した方が良さそう.

Gymnasium Documentation
A standard API for reinforcement learning and a diverse set of reference environments (formerly Gym)
#https://stable-baselines3.readthedocs.io/en/master/guide/quickstart.html#getting-started

import imageio
import numpy as np
import gymnasium as gym
from stable_baselines3 import A2C

env = gym.make("CartPole-v1",render_mode="rgb_array")

model = A2C("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=100)

vec_env = model.get_env()
obs = vec_env.reset()
images=[]

for i in range(1000):
    action, _state = model.predict(obs, deterministic=True)
    obs, reward, done, info = vec_env.step(action)

    img = vec_env.render()
    images.append(img)
    print("Step No is {}".format(i))

    #1エピソードで終わる場合
    #if done:
    #    print('done')
    #    break

imageio.mimsave("CartPole-v1.gif", [np.array(img) for i, img in enumerate(images) if i%2 == 0], fps=29)

env = gym.make("CartPole-v1", render_mode="rgb_array")

render_mode

描画モード

  • human:人が確認可能な形で描画してくれる.
  • rgb_array:np.array型,shapeは(x,y,3)として返り値を渡す.都度1フレームとして保存し,後程gifに変換する場合に使うイメージ.
  • その他
    • ansi
    • rgb_array_list
    • ansi_list

model = A2C("MlpPolicy", env, verbose=1)

verbose

学習時にログを出すか否か

  • 0:出力なし
  • 1:出力あり
  • 2:デバッグ用出力

model.learn(total_timesteps=100)

total_timesteps

学習ステップ

タイトルとURLをコピーしました