web-dev-qa-db-ja.com

OpenAIのenv.render()に続くエラー

以下のコードを機能させようとしています。

import gym

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

env.reset()

env.render()

最初の3行を実行しても問題はありませんが、4行目を実行するとエラーが発生します。

Traceback (most recent call last):

  File "<ipython-input-3-a692a1a1ffe7>", line 1, in <module>
    env.render()

  File "/home/mikedoho/gym/gym/core.py", line 150, in render
    return self._render(mode=mode, close=close)

  File "/home/mikedoho/gym/gym/core.py", line 286, in _render
    return self.env.render(mode, close)

  File "/home/mikedoho/gym/gym/core.py", line 150, in render
    return self._render(mode=mode, close=close)

  File "/home/mikedoho/gym/gym/envs/classic_control/cartpole.py", line 116, in _render
    self.viewer = rendering.Viewer(screen_width, screen_height)

  File "/home/mikedoho/gym/gym/envs/classic_control/rendering.py", line 51, in __init__
    self.window = pyglet.window.Window(width=width, height=height, display=display)

  File "/home/mikedoho/anaconda3/lib/python3.6/site-packages/pyglet/window/__init__.py", line 504, in __init__
    screen = display.get_default_screen()

  File "/home/mikedoho/anaconda3/lib/python3.6/site-packages/pyglet/canvas/base.py", line 73, in get_default_screen
    return self.get_screens()[0]

  File "/home/mikedoho/anaconda3/lib/python3.6/site-packages/pyglet/canvas/base.py", line 65, in get_screens
    raise NotImplementedError('abstract')

NotImplementedError: abstract

カートをポールに載せて、新しいウィンドウに表示したいと思っていました。

このエラーはSpyderのコードによるものです。私はubuntu 16.04を使用しています。 python 3.6.3; IPython 6.1.0。jupyter Notebookを使用しても運が悪い。

改めてお詫び申し上げます。これは、今日ダウンロードしたばかりのUbuntuで非常に新しいものです。

9
MikeDoho

10分前のように、私はこれを解決しました(バグ?):D

Pyglet 3をpyglet 1.2.4にダウングレードする必要があります。アナコンダプロンプトに_pip install pyglet==1.2.4_と入力します。その後、スパイダーIDEを再起動する必要がある場合があります。

コードにenv.close()を追加します。そうしないと、ウィンドウを閉じるときに問題が発生します。

python/ML/DLが初めての場合は、youtubeの「sentdex」をご覧ください。まず、イモは非常に良いコンテンツです。 (彼はジムのチュートリアルでTFlearnを使用しています)しかし、tensorflow 1.4にはKerasが含まれているため、ニューラルネットワークにはkeras high lvl APIを使用することをお勧めします。

幸運を祈ります

誰かがgoodジムのドキュメントを持っている場合は、自由に共有してください。

14
mGwork