環境 mac
Unity 2017.4.4.f1
ちょっとUnityで機械学習試して見たいのでやってみる
学習させるところまでとりあえず・・・。
必要なものをダウンロード
Unity ML-Agentsのアセットをダウンロードする
Unity Machine Learning Agents Toolkit
TensorFlowSharpプラグインをダウンロード
上記リンクのBasic GuideのところにあるDownloadをクリックするとpackageをダウンロードできる
unitypackageの状態で落とせるよ
Pythonをインストールしてない人はPythonもインストール
わからないときはターミナルから
python --version
すればバージョンが表示される。
2.7.10だったので3系インストールする
手っ取り早くAnacondaでPhthonの環境構築
2系と3系があるけど3系の方をチョイス
そしてインストールして起動
Anaconda起動
左メニューEnvironmentsを選択し、左下のCreateボタンを押す
適当に名前つけて、Pythonのバージョンを設定してCreate
作成したものをクリックしてOpen Terminalでターミナルが開く
ML-Agentsのアセットサンプルを動かす
まずはUnityで新規プロジェクト3Dで作成
ダウンロードしたUnity ML-Agentsnounity-environmentのAssetsフォルダを作成したプロジェクトに突っ込む
そしてTensorFlowSharpのプラグイン TFSharpPlugin.unitypackageもインポート
これ結構大きい
ここまでできたら
PlayerSettingのResolution and Presentationの
Runin Backgroundをチェック
Display Resolution DialogをDisabled
Other SettingsのScripting Runtime VersionをExperimental(.NET 4.6 Equivalent) Unity再起動するよ
Scripting Defined SymbolsにENABLE_TENSORFLOW を記載
シーンの設定
現状でこのようなフォルダ構成になっているはずなので
ML-Agents/Examples/3DBall/Scenes/3DBallのシーンを開く
学習方法の設定は
ヒエラルキーのBall3DAcademy/Ball3DBrainのインスペクターにある
Brain.csのBrainTypeで変更します。
学習させたいので今回はExternalに。
デフォルトだとPlayerになっていて十字キーで自分で操作できます
Brain TypeはPlayer, Heuristic, External, Internalの4種類
Playerは人間が動かす
Heuristicはコードで動かす
ExternalはUnityEditor上もしくはコンソールからの起動で自動で学習させる
Internalは学習させたデータを使って動かす
BuildSettingにシーンを追加してmacでビルド
このまま実行してもボールが落ちるだけなので学習させる
必要なPythonのパッケージのインストール
ターミナルにてml-agents-masterのpythonフォルダに移動
pip install .
pythonフォルダの状態で
python3 learn.py <ビルドしたappのパス> --train
デフォルトだとStepが50000だから結構ほっとかないと終わらなかった。
もっと少なくすればよかった --save-freq=回数 のパラメータを設定してあげれば変更可能
終わるとball3D_ppo.bytesがml-agents-master/python/models/ppoに出力されます
ソースとかまだ読んでないからあまり中身わかってないけど・・・
一旦ここまで。