Unityで機械学習をやってみよう。今回はMacOS上に環境を作成する。
今回使うRelease12の必要環境は以下
Unity:2018.4~
Python:3.6.1~3.8.x
このチュートリアルはUnityのバージョンは2019.4.12f1、Pythonは3.8で行っている。
ml-agents公式
基本的にはGitHubに上がっている公式に従ってやっていく。
https://github.com/Unity-Technologies/ml-agents/blob/release_12_docs/docs/Installation.md
驚くべき開発スピードだが、今回はRelease12ブランチで構築していく。
ML-Agents Toolkitのダウンロード
最初にUnity用のML-Agentsを用意しよう。
任意の場所(Desktop等)に以下をクローンする。
$ cd ~/Desktop
$ git clone --branch release_12 https://github.com/Unity-Technologies/ml-agents.git
Unityにインストール
Unityにて新規3Dプロジェクトを立ち上げ以下の手順でパーケージをインストールする
1.メニューに移動Window-> Package Manager。 2.パッケージマネージャーウィンドウで、+ボタンをクリック。 3.選択する Add package from disk…
4.最初にダウンロードしたml-agents内にあるcom.unity.ml-agentsフォルダに移動。 5.package.jsonファイルを選択。
extentionのインストール
Sampleプログラムの幾つかが必要とするのでextentionもインポートしておこう。
同じようにPackageManagerからAdd Package from diskを選択して
com.unity.ml-agents.extensionフォルダー内にあるpackage.jsonを選択する
サンプルプロジェクトのコピー
それではサンプルプロジェクトをコピーしていこう。ここではファインダーを使ってコピペで移動する。
GitHubからクローンしてきたml-agentsフォルダ内にあるProject->AssetsフォルダにあるML-Agentsフォルダをコピーして、Unityで作成したプロジェクト内のAssetsフォルダに貼り付ける
ひとまず確認
確認してみよう。Unityに行って
Asstes->ML-Agents->Examples->3DBall->Scenesフォルダにある3DBallシーンを選択する。
実行してみよう。すでに学習済みのデータによってボールを落とさないようにうまく操作していることがわかる。
学習環境の構築
サンプルデータの再生では学習済みのデータを再生しただけだ。なので実際に学習をできる環境を作っていこう。機械学習といえばPythonだ。まずはPython環境を作成する。ローカル環境にPython3.8がインストールされているものとする。
仮想環境の構築
Pythonの仮想環境を作成しよう。こうしておくことで特定の用途に適したPython実行環境を構築することができる。今回の例で言うとUnityで機械学習させる専門のPython環境を構築できる。
1.まずは任意の場所に仮想環境用のフォルダを作成する。今回はホームフォルダにpython-envsというフォルダを作成した。
$ mkdir ~/python-envs
2.以下のコマンドで今回のUnity用の実行環境を作成する。名前をmy-unity-envとしたがもちろん好きな名前でOK。Python3.3からvenvを使って簡単に仮想環境を構築できるようになった。
$ python3 -m venv ~/python-envs/my-unity-env
3.以下のコマンドで作成した環境をアクティブにする。
$ source ~/python-envs/my-unity-env/bin/activate
仮想環境に入ることができた!
(もしも仮想環境から出たい場合には以下のコマンドだ)
$ deactivate
4.PIPを最新のものに更新する(my-unity-envに居る状態で以下のコマンドを打つ)
$ pip3 install --upgrade pip
5.setuptoolsをアップグレードする。
$ pip3 install --upgrade setuptools
mlagentsのインストール
この環境にmlagents(machine-learning agents)をインストールしよう。
$ pip3 install mlagents==0.23.0
ここで指定している0.23.0というのは以下の表のPythonPackageのバージョンだ。
今回はRelease12で行っているのでバージョンは0.23.0ということになる、
実行
これで仮想環境ができあがったので実行しよう。以下のコマンド打つ
$ mlagents-learn
うぉぉ!なんかすごい!!これでUnity機械学習用のPythonが起動した。
Unityに戻って先程のプロジェクトを実行してみよう。Unityの再生に合わせてPythonも動き出した。
おお、こちらも何やら動いている!!
停止
Unityの再生を止めよう。するとPythonも色々とログを出しながら止まることがわかる。
機械学習の環境構築完了!
これでUnityとPythonが連携して行う機械学習の環境設定はOKだ。次回は実際に機械学習をさせてみよう。
コメント