toio と Unity ML-Agents ではじめるロボットの強化学習 (2) - 学習の高速化
スタンドアロンアプリ化した学習環境の複数同時起動で、学習の高速化を行います。
【最新版の情報は以下で紹介】
前回
1. 学習の高速化
前回は、Unityエディタ上で学習しました。これでも学習可能ですが、時間がかかります。今回は、スタンドアロンアプリ化した学習環境の複数同時起動で、学習の高速化を行います。
2. 学習環境のスタンドアロンアプリ化
「toio SDK for Unity」はWindows/Macのスタンドアロンアプリの出力に対応していません。そこで、「toio-sdk/Scripts」下のスクリプトの「#defineディレクティブ」を書き換えることで、学習環境をスタンドアロンアプリとして出力できるようにします。
#if UNITY_EDITOR
↓
#if (UNITY_EDITOR || UNITY_STANDALONE)
「toio SDK for Unity v1.0.2」の場合は、以下が修正対象になります。
メニュー「Edit → Project Settings → Player → Fullscreen Mode」で「Windowed」を指定し、ウィンドウ表示にします。
メニュー「File → Build Settings」の「Platform」で「PC, Mac & Linux Standalone」を選択し、「Build」ボタンでビルドします。
スタンドアロンアプリ(HelloToio.app)が出力されます。
3. スタンドアロンアプリ化した学習環境の複数同時起動
スタンドアロンアプリ化した学習環境の複数同時起動して学習するコマンドは、次のとおりです。
$ mlagents-learn config/sample/HelloToio.yaml --run-id=HelloToio-ppo-2 --time-scale=1 --env=HelloToio --num-envs=8
今回は8個のスタンドアロンアプリを同時起動しています。結果は、次のとおりです。平均報酬1.0になるまでステップ数は同じ(左グラフ)ですが、時間は半分以下(右グラフ)になりました。
4. スタンドアロンアプリ化した学習環境の複数同時起動 + グラフィックなし
「スタンドアロンアプリ化した学習環境の複数同時起動 + グラフィックなし」による学習も試してみます。
$ mlagents-learn config/sample/HelloToio.yaml --run-id=HelloToio-ppo-3 --time-scale=1 --env=HelloToio --num-envs=8 --no-graphics
結果は、次のとおりです。平均報酬1.0になるまでステップ数は同じ(左グラフ)ですが、時間は若干ですが高速(右グラフ)になりました。
この記事が気に入ったらサポートをしてみませんか?