質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OpenAI Gym

OpenAI Gymは、強化学習を開発・強化するためのシミュレーション環境です。強化学習における実験や評価環境などを標準化し提供することを目的としています。さらに、結果をアップロードしたり、他の人の実行結果や実装を見ることも可能です。

強化学習

強化学習とは、ある環境下のエージェントが現状を推測し行動を決定することで報酬を獲得するという見解から、その報酬を最大限に得る方策を学ぶ機械学習のことを指します。問題解決時に得る報酬が選択結果によって変化することで、より良い行動を選択しようと学習する点が特徴です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

1413閲覧

つくりながら学ぶ深層強化学習のCart Poleの可視化実装

zakky0603

総合スコア4

OpenAI Gym

OpenAI Gymは、強化学習を開発・強化するためのシミュレーション環境です。強化学習における実験や評価環境などを標準化し提供することを目的としています。さらに、結果をアップロードしたり、他の人の実行結果や実装を見ることも可能です。

強化学習

強化学習とは、ある環境下のエージェントが現状を推測し行動を決定することで報酬を獲得するという見解から、その報酬を最大限に得る方策を学ぶ機械学習のことを指します。問題解決時に得る報酬が選択結果によって変化することで、より良い行動を選択しようと学習する点が特徴です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/08/15 07:06

編集2020/08/16 08:32

前提・実現したいこと

現在PythonのOpenAIGymをつかってCartPoleの実装をしています。
教材は「つくらながら学ぶ深層強化学習」を使っています。
実現したいことはCartPoleの可視化です.

発生している問題・エラーメッセージ

NameError Traceback (most recent call last) <ipython-input-10-649a9cc1e6eb> in <module> 6 7 for step in range(0, 200): ----> 8 frames.append(env.render(mode='rgb_array')) # framesに各時刻の画像を追加していく 9 action = np.random.choice(2) # 0(カートを左に押す), 1(カートを右に押す)をランダムに返す 10 observation, reward, done, info = env.step(action) # actionを実行する ~\anaconda3\envs\rl_env\lib\site-packages\gym\core.py in render(self, mode, **kwargs) 231 232 def render(self, mode='human', **kwargs): --> 233 return self.env.render(mode, **kwargs) 234 235 def close(self): ~\anaconda3\envs\rl_env\lib\site-packages\gym\envs\classic_control\cartpole.py in render(self, mode) 172 173 if self.viewer is None: --> 174 from gym.envs.classic_control import rendering 175 self.viewer = rendering.Viewer(screen_width, screen_height) 176 l, r, t, b = -cartwidth / 2, cartwidth / 2, cartheight / 2, -cartheight / 2 ~\anaconda3\envs\rl_env\lib\site-packages\gym\envs\classic_control\rendering.py in <module> 23 24 try: ---> 25 from pyglet.gl import * 26 except ImportError as e: 27 raise ImportError(''' ~\anaconda3\envs\rl_env\lib\site-packages\pyglet\gl\__init__.py in <module> 222 else: 223 from .carbon import CarbonConfig as Config --> 224 del base 225 226 # XXX remove NameError: name 'base' is not defined

該当のソースコード

python

1# 動画の描画関数の宣言 2# 参考URL http://nbviewer.jupyter.org/github/patrickmineault/xcorr-notebooks/blob/master/Render%20OpenAI%20gym%20as%20GIF.ipynb 3from JSAnimation.IPython_display import display_animation 4from matplotlib import animation 5from IPython.display import display 6 7 8def display_frames_as_gif(frames): 9 """ 10 Displays a list of frames as a gif, with controls 11 """ 12 plt.figure(figsize=(frames[0].shape[1]/72.0, frames[0].shape[0]/72.0), 13 dpi=72) 14 patch = plt.imshow(frames[0]) 15 plt.axis('off') 16 17 def animate(i): 18 patch.set_data(frames[i]) 19 20 anim = animation.FuncAnimation(plt.gcf(), animate, frames=len(frames), 21 interval=50) 22 23 anim.save('movie_cartpole.mp4') # 追記:動画の保存です 24 display(display_animation(anim, default_mode='loop')) 25 26# CartPoleをランダムに動かす 27 28frames = [] 29env = gym.make('CartPole-v0') 30observation = env.reset() # 最初に環境のresetが必要 31 32for step in range(0, 200): 33 frames.append(env.render(mode='rgb_array')) # framesに各時刻の画像を追加していく 34 action = np.random.choice(2) # 0(カートを左に押す), 1(カートを右に押す)をランダムに返す 35 observation, reward, done, info = env.step(action) # actionを実行する 36 37# 注意:実行後にipykernel_launcher.p...というindowが開いて固まりますが放置しておいてください

試したこと

frames.append(env.render(mode='rgb_array')) →env.render()としfor文の最後にenv.close()を追加しましたが同じようなエラーが返ってきました.

補足情報(FW/ツールのバージョンなど)

python 3.8
OpenAIGym

わかりやすく教えていただけると幸いです.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aokikenichi

2020/08/16 14:44

この本は読んでないのでわからないのですが、サンプルコードがダウンロード等出来るかと思います。 自分で書いたコードでエラーが出ているのでしょうか。 サンプルコードでエラーが出ているのでしょうか。 del base NameError: name 'base' is not defined なので明らかに 定義していないbaseを削除しようとしている ので、baseをどこかでスペルミスしていないか。読み込むライブラリを間違えていないか等かなと思います。
zakky0603

2020/08/19 06:16

サンプルコード通りです。 自分が考えたコードではありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問