0
1

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 1 year has passed since last update.

強化学習16 Colaboratoryのファイル操作と最初のCartPole

Last updated at Posted at 2019-11-21

※ chainerRLからtorchRLに替えて、やり直します。
強化学習15が終了していることが前提です。

ほとんどのシェル系操作は、下のように!をつければ実行できます。

!ls

ディレクトリ移動は%

% cd drive

ランタイムについては、以下に詳しく書かれています。
秒速で無料GPUを使う。
https://qiita.com/tomo_makes/items/b3c60b10f7b25a0a5935
メモリー空間は膨大に用意されるようですが、そこにデータを入れないといけない。
Googleのインタラクティブ優先は理解できますが、
アクセスするたびに、新しいメモリー空間が用意されて、そこにデータを移すのは大変な作業です。
そこで、重宝するのがgoogleドライブ。
とても簡単にマウントできます。

マウントの詳細については、ググってください。

このドライブのマウントですが、とてもいいと思います。レンタルサーバーで気になっていたのがデータのアップロードとダウンロードでした。
この敷居はとても高くて、時間あたりの課金を考えると見積もりも大変。そもそも無料なのですが、さらにアップロードとダウンロードの手間が減ります。

それでは、実行中のipynbのホームディレクトリーはどこなのか。
試しに、前でも使ったプログラムを実行します。

import gym
env = gym.make('CartPole-v0')
for i_episode in range(20):
    observation = env.reset()
    for t in range(100):
        env.render()
        action = env.action_space.sample()
        observation, reward, done, info = env.step(action)
        if done:
            print("Episode finished after {} timesteps".format(t+1))
            break
env.close()

エラーで動きません。
displayがダメとのこと。env.render()がダメなんです。

いろいろな変更の結果です。

!apt update
!apt install xvfb
!pip install pyvirtualdisplay
from pyvirtualdisplay import Display
disp = Display()
disp.start()
import gym
from IPython import display
import matplotlib.pyplot as plt
from matplotlib import animation


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

obs = env.reset()

img = []
for _ in range(100):
    obs, r, disp, i = env.step(env.action_space.sample())

    display.clear_output(wait=True)
    img.append(env.render('rgb_array'))

    if disp:
        env.reset()

dpi = 72
interval = 50 # ms

plt.figure(figsize=(img[0].shape[1]/dpi,img[0].shape[0]/dpi),dpi=dpi)
patch = plt.imshow(img[0])
plt.axis=('off')
animate = lambda i: patch.set_data(img[i])
ani = animation.FuncAnimation(plt.gcf(),animate,frames=len(img),interval=interval)
display.display(display.HTML(ani.to_jshtml()))

こちらを参照してください。
https://qiita.com/ymd_h/items/c393797deb72e1779269

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?