LoginSignup
7
13

More than 5 years have passed since last update.

Unityで機械学習やってみる(ML-Agents) 最初のサンプル動かすとこまで

Last updated at Posted at 2018-08-06

環境 mac
Unity 2017.4.4.f1

ちょっとUnityで機械学習試して見たいのでやってみる
学習させるところまでとりあえず・・・。

必要なものをダウンロード

Unity ML-Agentsのアセットをダウンロードする

Unity Machine Learning Agents Toolkit

中身はこんな感じ
スクリーンショット 2018-08-07 00.07.40.png

TensorFlowSharpプラグインをダウンロード

ここから


上記リンクのBasic GuideのところにあるDownloadをクリックするとpackageをダウンロードできる
unitypackageの状態で落とせるよ

Pythonをインストールしてない人はPythonもインストール

わからないときはターミナルから

python --version

すればバージョンが表示される。
2.7.10だったので3系インストールする
手っ取り早くAnacondaでPhthonの環境構築
2系と3系があるけど3系の方をチョイス
そしてインストールして起動

Anaconda起動

左メニューEnvironmentsを選択し、左下のCreateボタンを押す
スクリーンショット 2018-08-07 00.23.14.png

適当に名前つけて、Pythonのバージョンを設定してCreate
スクリーンショット 2018-08-07 00.23.38.png

作成したものをクリックしてOpen Terminalでターミナルが開く
スクリーンショット 2018-08-07 00.28.15.png

バージョンを確認
スクリーンショット 2018-08-07 00.32.28.png

ML-Agentsのアセットサンプルを動かす

まずはUnityで新規プロジェクト3Dで作成

ダウンロードしたUnity ML-Agentsnounity-environmentのAssetsフォルダを作成したプロジェクトに突っ込む
スクリーンショット 2018-08-07 00.20.04.png

そして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 を記載
スクリーンショット 2018-08-07 00.43.06.png

シーンの設定

現状でこのようなフォルダ構成になっているはずなので
ML-Agents/Examples/3DBall/Scenes/3DBallのシーンを開く
スクリーンショット 2018-08-07 00.44.33.png

ボールを落とさないように板を傾けるやつです
スクリーンショット 2018-08-07 00.46.37.png

学習方法の設定は
ヒエラルキーのBall3DAcademy/Ball3DBrainのインスペクターにある
Brain.csのBrainTypeで変更します。
学習させたいので今回はExternalに。
デフォルトだとPlayerになっていて十字キーで自分で操作できます
スクリーンショット 2018-08-07 00.49.32.png

Brain TypeはPlayer, Heuristic, External, Internalの4種類
Playerは人間が動かす
Heuristicはコードで動かす
ExternalはUnityEditor上もしくはコンソールからの起動で自動で学習させる
Internalは学習させたデータを使って動かす

BuildSettingにシーンを追加してmacでビルド
このまま実行してもボールが落ちるだけなので学習させる

必要なPythonのパッケージのインストール

ターミナルにてml-agents-masterのpythonフォルダに移動

pip install .

上記コマンドを実行
すると色々インストールされる。
スクリーンショット 2018-08-07 01.10.14.png

pythonフォルダの状態で

python3 learn.py <ビルドしたappのパス> --train

上記コマンドを実行するとappが立ち上がって勉強し始める
study.gif

しばらく放置すると落とさなくなってきてる!
study2.gif

デフォルトだとStepが50000だから結構ほっとかないと終わらなかった。
もっと少なくすればよかった --save-freq=回数 のパラメータを設定してあげれば変更可能
終わるとball3D_ppo.bytesがml-agents-master/python/models/ppoに出力されます
スクリーンショット 2018-08-07 01.26.29.png

ソースとかまだ読んでないからあまり中身わかってないけど・・・
一旦ここまで。

7
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
13