トップページ -> 最新情報技術の実習と研究ツール -> Windows でソフトウエアのインストールと設定 -> Windows で Unity ML-Agents + Python 環境を作る(Chocolatey, Anaconda を利用)(Chocolatey, Anaconda を利用)
[サイトマップへ]  

Windows で Unity ML-Agents + Python 環境を作る(Chocolatey, Anaconda を利用)

ユースケース:Windows で Unity ML-Agents ツールキットを試したい

特記事項: Unity の利用条件、ライセンス条項を確認し、利用すること

特に、次の事項に当てはまらない場合には、よく確認すること

ここで行うこと

目次

  1. 前準備
  2. Chocolatey のインストール
  3. Chocolatey を用いて、git, cmake, wget, 7zip をインストール
  4. Chocolatey を用いて、Python プログラム開発環境 Anaconda, Python 2 をインストール
  5. Chocolatey でインストール済みのパッケージを一括更新
  6. インストールしたソフトウエア類に関する設定
  7. 隔離された Python 環境の作成
  8. 新規作成された Python 環境を使いたいとき
  9. Chocolatey を用いて、Unity, Unity Standard Assets, Unity for Linux をインストール
  10. Unity ML-Agents のための Python パッケージをインストールする
  11. Unity ML-Agents ツールキットをダウンロードし、インストールする

サイト内の関連Webページ

注意事項. Chocolatey を使うと、種々のソフトウエアのインストールが楽になります。 このとき、インストールしたソフトウエアの利用条件、ライセンス条項は必ず、確認すること.

特に、次のことに気をつけること

※ 「行いたい」というときには、それぞれのソフトウエアの利用条件、ライセンス条項を確認すること


前準備

Windows の 「アプリと機能」で、インストール済みのプログラムを見る。 次のソフトがある場合には、アンインストールする

今からインストールを行うので、混乱を防ぐため


Chocolatey のインストール

Chocolatey の Web ページの記載の手順に従う.

  1. Windows のコマンドプロンプトを管理者として実行する.
  2. Web ブラウザで、Chocolatey の Web ページを開く

    https://chocolatey.org/

  3. Install Chocolatey Now」をクリック

    新しい画面に変わるので確認する

  4. 新しい画面 (Chocolatey の インストールWeb ページ)のコマンドをコピー

  5. 先ほど開いた Windows のコマンドプロンプトに貼り付ける

  6. 実行の結果,エラーメッセージが出ていないことを確認する.

Chocolatey を用いて、git, cmake, wget, 7zip をインストール

  1. Windows のコマンドプロンプトを管理者として実行する.

  2. git, cmake, wget, 7zip をインストール

    ※ 実行のとき、エラーメッセージが出ないことを確認すること

    choco install -y git cmake.install wget 7zip
    

Chocolatey を用いて、Python プログラム開発環境 Anaconda, Python 2 をインストール

  1. Windows のコマンドプロンプトを管理者として実行する.

  2. Anaconda, Python 2 をインストール

    ※ 実行のとき、エラーメッセージが出ないことを確認すること

    choco install -y anaconda3 python2
    

  3. Anaconda の conda パッケージの更新、古い conda パッケージファイルの削除

    「conda config --remove channels conda-forge」でのエラーメッセージは無視して良い

    「C:\tools\Anaconda3\Scripts\conda upgrade --all」で、y か n かを尋ねる質問が出たときは、続行したいので「y」

    C:\tools\Anaconda3\Scripts\conda config --remove channels conda-forge
    
    C:\tools\Anaconda3\Scripts\conda upgrade --all
    
    C:\tools\Anaconda3\Scripts\conda clean --packages
    

    ※ 「反応が遅いなあ」と思ったら、Enter キーを押してみる.


Chocolatey でインストール済みのパッケージを一括更新

  1. 新しくWindows のコマンドプロンプトを管理者として実行する.

  2. 更新の操作

    コマンドプロンプトで,次のコマンドを実行

    choco upgrade -y all 
    

インストールしたソフトウエア類に関する設定

  1. Windowsのシステム環境変数Path先頭部分の設定

    ※ システムの環境変数Pathは、すでに存在するはずなので、編集

    先頭部分が次のようになるように編集

    ※ すでに、Pathのなかに、一部分含まれているときは、 その部分を並び変えて、下の順序に一致させる

    C:\Program Files\Git\cmd
    C:\Program Files\CMake\bin
    C:\Tools\Anaconda3
    C:\Tools\Anaconda3\Library\mingw-w64\usr\bin
    C:\Tools\Anaconda3\Library\usr\bin
    C:\Tools\Anaconda3\Library\bin
    C:\Tools\Anaconda3\scripts
    C:\Python27\Scripts
    C:\Python27\
    C:\ProgramData\chocolatey\bin
    

    Windowsの画面の表示では、次のように、円マークになる

  2. システム環境変数 Path の確認

    新しくWindows のコマンドプロンプトを管理者として実行する.

    そして、次のコマンドを実行する

    python, pip については、C:\tools\Anaconda3のものが先頭にあることを確認すること. その他については、エラーメッセージが出ないこと.

    where git
    where git-gui
    where cmake
    where cmake-gui
    where python
    where ipython
    where pip
    where conda
    

  3. python のバージョンの確認
    python --version 
    

  4. conda の動作確認

    ※ エラーメッセージが出なければ OK.

    conda info
    

  5. Python の numpy パッケージがインストールできることの確認

    ※ バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある

    python -c "import numpy; print( numpy.__version__ )"
    

    このとき 「Original error was: DLL failed: 指定されたモジュールが見つかりません」 というエラーメッセージが出ることがある.

    Windows のシステム環境変数 Path に「C:\Tools\Anaconda3\Library\bin」を含めてから、 新しいコマンドプロンプトで実行してみる


隔離された Python 環境の作成

  1. 今から作成するPython 環境の名前と、Pythonのバージョンを決めておく

  2. Windows のコマンドプロンプトを実行する.

  3. 隔離された Python 環境を作成する

    次のコマンドを実行

    conda create -n ml-agents python=3.6
    

  4. Python 環境が作成できたことを確認
    conda info -e 
    

これで、もとからの Python 環境と, 新規作成されたPython 環境(Python のバージョン 3.6名前は ml-agents)の共存できた。


新規作成された Python 環境を使いたいとき


隔離された Python 環境で、インストールの前準備を行う

いま作成した Python 環境で、パッケージの更新、spyder のインストールなどの前準備を行う

  1. Windows で、コマンドプロンプトを実行

  2. Python 環境を有効にする

    次のコマンドを実行

    activate ml-agents 
    

  3. Anaconda の conda パッケージの更新、古い conda パッケージファイルの削除

    conda の行は1行ずつ実行

    「conda config --remove channels conda-forge」は,conda のチャンネルに「conda-forge」が入っていたら削除する操作(エラーメッセージが出たとしても無視してください).

    conda config --remove channels conda-forge
    
    conda upgrade --all
    
    conda clean --packages
    

    (途中省略)

    (途中省略)

  4. conda の動作確認

    エラーメッセージが出ないことを確認

    conda info
    

Chocolatey を用いて、Unity, Unity Standard Assets, Unity for Linux をインストール

https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Installation.md の記述により Unity 2017.4 以降をインストールする
  1. Windows のコマンドプロンプトを管理者として実行する.

  2. Chocolatey を用いて、Unity, Unity Standard Assets, Unity for Linux をインストール

    しばらく待つ

    ※ Unity などをインストール済みのときは、違った画面になる

    ※ 実行のとき、エラーメッセージが出ないことを確認すること

    choco install -y unity unity-standard-assets unity-linux
    

Unity ML-Agents のための Python パッケージをインストールする

https://github.com/Unity-Technologies/ml-agents/blob/master/ml-agents/requirements.txt の記述に従う

いま作成した Python 環境に、種々の Python パッケージをインストールする

  1. Windows でコマンドプロンプトを実行

  2. Python 環境を有効にする

    次のコマンドを実行

    activate ml-agents 
    

  3. TensorFlow バージョン 1.7.1 をインストールしたいので、次のコマンドを実行

    時間がかかるので待つ

    conda install -y tensorflow=1.7.1 
    

  4. protobuf バージョン 3.6.0 をインストールしたいので、次のコマンドを実行

    conda install -y protobuf=3.6.0 
    

  5. grpcio バージョン 1.11.0 をインストールしたいので、次のコマンドを実行

    conda install -y grpcio=1.11.0 
    

  6. その他 ML-Agents ツールキットに必要なパッケージのインストール
    conda install -y spyder opencv numpy scipy scikit-image matplotlib pillow
    conda install -y jupyter pytest docopt pyyaml cython
    

  7. TensorFlow のバージョン確認

    Windows のコマンドプロンプトで、次のコマンドを実行

    1.7.1が表示されることを確認

    python -c "import tensorflow as tf; print( tf.__version__ )"
    

Unity ML-Agents ツールキットをダウンロードし、インストールする

https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Installation.md の記述に従う
  1. Windows のコマンドプロンプトを管理者として実行する.

  2. Python 環境を有効にする

    次のコマンドを実行

    activate ml-agents 
    

  3. Unity ML-Agents ツールキットをダウンロードする

    ※ 実行のとき、エラーメッセージが出ないことを確認すること

    cd C:\tools
    rmdir /s /q ml-agents 
    git clone https://github.com/Unity-Technologies/ml-agents.git
    

  4. imgaug のインストール

    mkdir c:\pytools
    cd c:\pytools
    rmdir /s /q imgaug
    

    conda install -y opencv cython scikit-image scipy
    git clone https://github.com/aleju/imgaug 
    cd imgaug
    python setup.py build
    python setup.py install 
    

  5. pip コマンドを用いて ml-agents をインストール

    pip install」の後ろは、半角スペースと半角ピリオド

    ※ 実行のとき、エラーメッセージが出ないことを確認すること

    cd C:\tools\ml-agents
    cd ml-agents
    pip install . 
    

  6. インストールができたことを確認する

    次のコマンドを実行.説明が表示されれば OK.

    ※ 実行のとき、エラーメッセージが出ないことを確認すること

    mlagents-learn --help
    

Unity を起動し、Unity ML-Agents の設定を行う

Unity はゲームエンジン.ここでは、Unity を起動し、Unity ML-Agents の設定を行う

https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Basic-Guide.md の記述に従う

  1. Unity を起動する

    スタートメニューを使って起動するのが簡単

  2. サインインする

    Unity ID を持っていないときは、「Sign in with google」などでログインするか、「create one」をクリックして Unity ID を作る

    すでに、「Sign in with google」でログインしたことがある場合は、次のような画面が表示される

  3. 初回起動時には、ライセンス管理の画面が開く. 下の画面では、 「Unity Personal」の方を選んでいる

    Unity の利用条件、ライセンス条項を確認し、利用すること

  4. 初回起動時には、「Please select one of the options below」の画面が開くので、1つ選び、「Next」をクリック

  5. 初回起動時には、「Thank you!」の画面が開くので、1つ選び、「Start Using Unity」をクリック

  6. Unity の画面が開くので確認する

  7. UnitySDK のプロジェクトを開きたいので、「Open」をクリック

  8. C:\tools\ml-agents\UnitySDK」を選ぶ.少し待つ

  9. このとき「Opening Project in Non-Matching Editor Installation」という画面が出る場合がある。 「Continue」をクリック

  10. 設定を行う

    Edit」 →「Project Settings」 →「Player」 と操作する

  11. Other Settings」をクリック

  12. Scripting Runtime Version は、「.NET 4.6 Experimental」か「.NET 4.x Equivalent」にする(どちらかが選べるはず)

  13. Scripting Defines Symbols は、「ENABLE_TENSORFLOW」を設定する

  14. File」 →「Save Project」 と操作して、設定を保存する

  15. TensorFlowSharp プラグインをダウンロードする

    次の URL からダウンロードする

    https://s3.amazonaws.com/unity-ml-agents/0.5/TFSharpPlugin.unitypackage

    うまくダウンロードできないときは、 https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Basic-Guide.md のWebページを開き、 「Setting up the ML-Agents Toolkit within Unity」のところにある 「Download」をクリック

  16. ダウンロードが始まる

  17. ダウンロードしたTensorFlowSharp プラグインをインポートする

    ダウンロードしたファイルを実行する

    次のような画面が開くので「Import」をクリック

    少し待つ

  18. インポートが成功したかの確認

    Unity のプロジェクトの画面で、 「Assets」 →「ML-Agents」 →「Plugins」 →「Computer」のディレクトリに、TenforFlow のファイルがあるのを確認する


事前学習済みのモデルを実行してみる

  1. Unity のプロジェクトウインドウ (Project window) で、 「Assets」 →「ML-Agents」 →「Examples」 →「3DBall」のディレクトリを開く

  2. ここの「Scene」下にある、3DBall のシーンファイルを、ダブルクリックして開く

  3. 画面が変わるので確認

  4. 上にある画面をクリック。

    マウスの右ボタンを押しながらマウスを動かすと、回転する

    マウスのホイールで、前後移動するする

  5. 階層の画面(Hierarchy window)で、 Ball3DAcademy ゲームオブジェクトにある Ball3DBrain をクリック

    ※ 階層の画面(Hierarchy window)は、ゲームオブジェクトの階層構造が表示される画面

  6. インスペクタの画面(Inspector window)に、プロパティが表示されるので確認する

  7. Ball3DBrain ゲームオブジェクトのプロパティである Brain 要素は、 Player, Heuristic, External, Internalから選ぶことができる

  8. Brain 要素を、 Player から Internalに変更する

  9. Unity のプロジェクトウインドウ (Project window) で、 「Assets」 →「ML-Agents」 →「Examples」 →「3DBall」 →「TFModels」 のディレクトリを開く

  10. このディレクトリにある「3DBall」という名前のモデルファイルを、

    Ball3DBrain ゲームオブジェクトのプロパティである Brain 要素Graph Modelフィールドにドラッグする

    ※すでに設定済みの可能性があるが念のため

    これで、事前学習済みのモデルが設定できた。

  11. 実行を開始する。

    Play ボタン」をクリックして、実行を開始する。

    事前学習済みのモデルでバランスをとる様子を確認できる

  12. もう1度「Play ボタン」をクリックして、実行を停止する。

学習を行ってみる

  1. もし実行中のときは、「Play ボタン」をクリックして、実行を停止しておく.

  2. 階層の画面(Hierarchy window)で、 Ball3DAcademy ゲームオブジェクトにある Ball3DBrain をクリック

    ※ 階層の画面(Hierarchy window)は、ゲームオブジェクトの階層構造が表示される画面

  3. インスペクタの画面(Inspector window)で、 Ball3DBrain ゲームオブジェクトのプロパティである Brain 要素を、 Externalに変更する

  4. External」に設定されていることを確認する

  5. Play ボタン」をクリックして、実行を開始する。

    うまくボールを受け止めることができていないことを確認する

  6. もう1度「Play ボタン」をクリックして、実行を停止する。

  7. File」 →「Save Project」 と操作して、設定を保存する.

    ※ 実行中のときは保存できないので、実行を停止してから保存する

    これで、学習を始める準備ができた.Unity の画面は閉じないこと

  8. Windows でコマンドプロンプトを実行

  9. Python 環境を有効にする

    次のコマンドを実行

    activate ml-agents 
    

  10. カレントディレクトリを、ML-Agents ツールキットのディレクトリに移動
    cd C:\tools\ml-agents
    

  11. mlagents-learn コマンドを用いて学習

    「\」でなく「/」を使う

    mlagents-learn config/trainer_config.yaml --run-id=1 --train
    

    セキュリティ警告が出た場合には許可する

  12. training by pressing the Player button in the Unity Editor」と表示されるので、Unity の「Play ボタン」をクリック

  13. 学習が進む

  14. 学習が終わる

  15. 学習済みのデータを Unityの配下にコピーする
    copy C:\tools\ml-agents\models\1-0\editor_Ball3DAcademy_1-0.bytes C:\tools\ml-agents\UnitySDK\Assets\ML-Agents\Examples\3DBall\TFModels
    

  16. 階層の画面(Hierarchy window)で、 Ball3DAcademy ゲームオブジェクトにある Ball3DBrain をクリック

    ※ 階層の画面(Hierarchy window)は、ゲームオブジェクトの階層構造が表示される画面

  17. インスペクタの画面(Inspector window)に、プロパティが表示されるので確認する

  18. Brain 要素を、 Player から Internalに変更する

  19. Unity のプロジェクトウインドウ (Project window) で、 「Assets」 →「ML-Agents」 →「Examples」 →「3DBall」 →「TFModels」 のディレクトリを開く

  20. このディレクトリにある「editor_Ball3DAcademy_1-0.bytes」という名前のモデルファイルを、 Ball3DBrain ゲームオブジェクトのプロパティである Brain 要素Graph Modelフィールドにドラッグする

  21. File」 →「Save Project」 と操作して、設定を保存する

    ※ 実行中のときは保存できないので、実行を停止してから保存する

  22. これで、学習済みのモデルが設定できた。 「Play ボタン」をクリックして、実行を開始する。

    結果を確認する

  23. もう1度「Play ボタン」をクリックして、実行を停止する。