Help us understand the problem. What is going on with this article?

Open AI Gymをインストールする

More than 3 years have passed since last update.

環境:
CPU:Corei7 6700K
GPU:GTX1070
SSD:240GB
HDD:1TB
マザーボード:ASUS H170-pro
OS:Ubuntu14.04 LTS
python:2.7.6
CUDA:8.0 RC
cuDNN:5.1
TensorFlow:0.10.0
など

過去4回で、Ubuntu14.04、CUDA、chainer、dqn、LIS、Tensorflowを順次インストールした。
http://qiita.com/masataka46/items/94417a5974dba810e7b8
http://qiita.com/masataka46/items/fddef236cb211ef3f145
http://qiita.com/masataka46/items/125c7900ec8ca83f6eb2
http://qiita.com/masataka46/items/12fb01f3417bd0791703
ただし、Unityがうまく立ち上がらないため、最後のLIS環境構築は完了していない。

今回はOpen AI Gymをインストールする。まずはここの指示
https://gym.openai.com/docs
に従って進める。

Open AI Gymをインストール

まずGitHubからcloneする。

git clone https://github.com/openai/gym
cd gym

fullインストールする方法もあるが、とりあえずminimumでインストールする。

pip install -e .

サンプルを走らせる

HPの指示に従って、簡単なサンプルを走らせる。

import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
    env.render()
    env.step(env.action_space.sample()) # take a random action

というコードにtest01.pyなど適当な名前を付け、

python test01.py

で走らせる。すると以下のようなエラーが表示された。

[2016-09-05 18:09:35,235] Making new env: CartPole-v0
[2016-09-05 18:09:35,690] You are calling 'step()' even though this environment has already returned done = True. You should always call 'reset()' once you receive 'done = True' -- any further steps are undefined behavior.
Traceback (most recent call last):
  File "test01.py", line 5, in <module>
    env.render()
  File "/home/ohmasa/openAIGym/gym/gym/core.py", line 189, in render
    return self._render(mode=mode, close=close)
  File "/home/ohmasa/openAIGym/gym/gym/envs/classic_control/cartpole.py", line 149, in _render
    return self.viewer.render(return_rgb_array = mode=='rgb_array')
  File "/home/ohmasa/openAIGym/gym/gym/envs/classic_control/rendering.py", line 84, in render
    self.window.dispatch_events()
  File "/usr/local/lib/python2.7/dist-packages/pyglet/window/xlib/__init__.py", line 853, in dispatch_events
    0x1ffffff, byref(e)):
ctypes.ArgumentError: argument 2: <type 'exceptions.TypeError'>: wrong type

しかし、次のサンプル

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

はepisodeを最後まで実行し終了した。場合によってはうまくいくのか?

masataka46
株式会社ウェブファーマー代表。 人工知能の開発。人工知能のコンサルティング。 2006年に株式投資を始め、8年で資産を75倍にする。 情報処理学会、電子情報通信学会、人工知能学会所属。
http://web-farmer.net
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした