UnityでML-Agentsの環境構築!!


初めました強化学習です。
今回は開発環境の構築をします。

開発環境

下記のスペックで行います。
 - OS : Windows 10 Pro
 - CPU : Core(TM) i5-8400 @2.80GHz
 - GPU : NVIDIA GeForce RTX 2060 (6Gのやつ)
 - メインメモリ : 8G

開発環境構築

構築手順を記載します。順番違ったらごめんなさい。

CUDA 9.0インストール

tensorflowが9.0に依存するのでこのバージョンをインストールします。
サイトからCUDAのインストーラーをダウンロードしてきます。
 

NVIDIA のGPUを計算用に使用する為のソフトウェアをインストールします。
ドライバーはCUDAインストーラーからインストールしない事をお勧めします。
画像はバージョン違うけど気にしないでね。

cuDNNをインストール

 今回はTensorflowのGPU版も一緒にインストールするのでこの作業を行います。
サイトはここにあります。
ログインしてからダウンロードして解凍したCUDAフォルダをインストールしたCUDAフォルダに入れてください。

Visual Studio インストール

サイトからダウンロード
めんどくさいので省略。
  

Anaconda インストール

これもサイトからダウンロード
うまくいかない時はおそらくSSH認証がうまくできない人だと思います。
めんどくさいのでアーカイブから古いバージョンをダウンロードします。

仮想環境の構築はお好みで、
Numpyを再インストール

pip unsinstall numpy
pip install numpy==1.14.5

Tensorflowのインストール

pip install tensorflow==1.7

mlagentsのインストール

pip install mlagents

後、僕の環境ではこれも必要そうだったので入れました。
docoptのインストール

pip install docopt

Unity インストール

サイトからダウンロードしインストール。特になし。

TensorFlowSharp プラグイン

調べると色々なGithub上でリンクがありますが、
こちらから拾ってきます。

Unity ML-Agent

Githubからプロジェクトをダウンロードしてください。
適当な場所に解凍してください。

Unityのセットアップ

プロジェクトの作成とアセットの追加とプラグインとインポートを行います。

プロジェクトの作成

プロジェクト名:適当(自分はML Projectとしました。)
プロジェクト作成場所:適当

アセットの追加

(Unityプロジェクト/Assets)にML-Agentのフォルダを一式格納します。

ML-Agentsのフォルダにはサンプルが入っています。
不要な場合はExsamplesフォルダを削除してください。

プラグインのインポート

Unityのメニューから「Assets」→「Import Package」→「Custom Package」選択。

「TensorFlowSharp プラグイン」を選択。

「Import」をクリックしプラグインをインポートします。

でここまでやっていくと、下になんか出てます。

とりあえず探した結果、これっぽいのでファイルを修正します。
Unityの「Console」のエラー項目をダブルクリックしてエラーの出ているファイルを開きます。

「using System.Runtime.Remoting.Messaging;」の行を削除し保存します。
するとエラーが消えますね。

ビルド設定

ラストスパートです。
Unityのメニュー「File」→「Build Settings」を選択。
「Player Settings」をクリックし、Inspectorウィンドウで設定を行います。

「Resolution and Presentation」の以下の設定に変更します。

設定 説明
Run in Background チェック バックグラウンド実行の有効化
Display Resolution Dialog Disabled Resolutionダイアログを非表示

続いて「Other Settings」の設定項目を以下の設定にします。

設定 説明
Scripting Runtime Version Experimental (.NET 4.x Equivalent) Scripting Runtimeのバージョン設定
Scripting Defined Symbols ENABLE_TENSORFLOW Tensorflowを利用することを指定
Api Compatibility Level* .net 4.x .NET 4 API へのアクセスを指定

以上でUnityのセットアップを完了しました。

動作確認

一応、mlagentsのコマンドが動くか確認します。
コンソール画面を開き以下のコマンドを入力します。

activate <anaconda仮想環境名>

仮想環境がアクティベートされたコンソール画面で
ML-Agentsのフォルダ階層まで移動します。(ml-agents-master\ml-agents)

cd ./ml-agents-master\ml-agents

最後におまじないをドーン。

mlagents-learn

そうすると以下のようなかっこいいロゴがコンソール上に現れます。
なんか警告出てますが、疲れたので無視します。

長かったですが、これで準備が整いました。