12
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OpenAI GymをJupyter notebookで動かすときの注意点一覧

Last updated at Posted at 2017-09-11

Jupyter notebookでOpenAI Gymを動かすために,やったこと.

環境

CentOS7, Jupyter notebook(サーバー上,anaconda),notebookはssh接続でクライアントから操作.

##目的

  • OpenAI GymのCartPole-v0を動作させ,アニメーション化する.

やったこと

  • Nvidiaのドライバを「./NVIDIA-Linux-x86_64-XXX.XX.run --silent --no-opengl-files --no-libglx-indirect --dkms」でインストールする.(再インストールした,reboot必要)
  • xvfbをインストールする(yum)
  • pygletを導入する(pip) (100%必要かは不明)
  • pipでインストールしたpygletで,pyglet/gl/init.pyの"del base"がNameErrorになるので削除(削除した影響については未調査だがせいぜいメモリ圧迫するぐらい?)
  • Jupyterの起動を「nohup xvfb-run -s "-screen 0 1400x900x24" jupyter notebook &」とする
  • あとは,OpenAI Gymの公式サイトのインストール方法に従う.

必要なかったこと

  • (sshクライアント側)Xmingのインストール(GLXがないとかXを使うやらのエラーメッセージに騙されたが,そもそも必要ない)

OpenAI Gym(CartPole-v0)を動かすのにかかった時間

約7時間

動いたサンプルコード(CartPole-v0)

sample.py
import gym
from matplotlib import animation
from matplotlib import pyplot as plt
%matplotlib nbagg

env = gym.make('CartPole-v0')

# Run a demo of the environment
observation = env.reset()
cum_reward = 0
frames = []
for t in range(5000):
    # Render into buffer. 
    frames.append(env.render(mode = 'rgb_array'))
    action = env.action_space.sample()
    observation, reward, done, info = env.step(action)
    if done:
        break
env.render(close=True)

fig = plt.gcf()
patch = plt.imshow(frames[0])
plt.axis('off')

def animate(i):
    patch.set_data(frames[i])

anim = animation.FuncAnimation(fig, animate, frames = len(frames), interval=50)
anim

以上

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?