![見出し画像](https://assets.st-note.com/production/uploads/images/48336270/rectangle_large_type_2_ed5de96908dc2d3f0d824c14b687c6d8.png?width=1200)
Google ColabでのUnity ML-Agentsの学習
「Google Colab」での「Unity ML-Agents」の学習を試してみました。
・Unity ML-Agents Release 15
・Unity 2019.4.19f1
【最新版の情報は以下で紹介】
1. Google Colabで学習するための学習環境の準備
はじめに、「Google Colab」で学習するための学習環境を準備します。
(1) Linuxビルドの準備
「Google Colab」で学習するには、学習環境を「Linux」の「x86_64」でビルドします。
今回は、「Unity ML-Agents」のサンプル環境「3DBall」を「3DBall」フォルダにLinuxビルドしてみます。
![画像4](https://assets.st-note.com/production/uploads/images/48394985/picture_pc_375d1121c193e77e2fbc779523d33f0a.png?width=1200)
ファイル構成は次のようになります。
・3DBall
・3DBall_Data
・3DBall.x86_64
・LinuxPlayer_s.debug
・UnityPlayer_s.debug
・UnityPlayer.so
(2) 訓練設定ファイルの準備
「3DBall」の「訓練設定ファイル」(ml-agents-release_15/config/ppo/3DBall.yaml)を3DBallフォルダに追加します。
・3DBall
・3DBall_Data
・3DBall.x86_64
・3DBall.yaml ← 追加
・LinuxPlayer_s.debug
・UnityPlayer_s.debug
・UnityPlayer.so
(3) 3DBallフォルダをzip圧縮
「3DBall」フォルダをzip圧縮します。
【注意】現在のところ「Server Build」する必要があるため、「Visual Observation」の環境は学習できません。
2. Google Colabでの学習
次に、「Google Colab」で学習します。
(1) 作業フォルダの準備
データ永続化のため、Googleドライブに作業フォルダを作成します。
# 作業用フォルダの作成
from google.colab import drive
drive.mount('/content/drive')
!mkdir -p /content/drive/'My Drive'/mlagents/
%cd /content/drive/'My Drive'/mlagents/
(2) 学習環境のアップロードと解凍
Googleドライブ経由で作業フォルダに「3DBall.zip」をアップロード後、解凍します。
# 学習環境をGoogleドライブ経由でアップロード
# 学習環境の解凍
!unzip 3DBall.zip
(3) Unity ML-Agentsのクローンとインストール
「Unity ML-Agents」のクローンとインストールを行います。
# ML-Agentsのクローン
!git clone --branch release_15 https://github.com/Unity-Technologies/ml-agents.git
# ML-Agentsのインストール
!pip install -e ml-agents/ml-agents-envs/
!pip install -e ml-agents/ml-agents/
(4) 「3DBall.x86_64」「UnityPlayer.so」のファイルモードを755に変更
既に実行権限がある場合は必要ありません。
# ファイルモードを755に変更
!chmod -R 755 3DBall/3DBall.x86_64
!chmod -R 755 3DBall/UnityPlayer.so
!ls -l 3DBall
total 38268
drwx------ 6 root root 4096 Mar 23 06:57 3DBall_Data
-rwx------ 1 root root 6272 Mar 22 10:53 3DBall.x86_64
-rw------- 1 root root 558 Mar 17 21:46 3DBall.yaml
-rwx------ 1 root root 4440 Mar 22 10:53 LinuxPlayer_s.debug
-rwx------ 1 root root 7495680 Mar 22 10:53 UnityPlayer_s.debug
-rwx------ 1 root root 31674152 Mar 22 10:53 UnityPlayer.so
(5) TensorBoardの準備
学習開始前に準備します。
# TensorBoardの準備
%load_ext tensorboard
%tensorboard --logdir results
(6) 学習の開始。
「mlagents-learn」で学習を開始します。「--no-graphics」が必要です。
!mlagents-learn 3DBall/3DBall.yaml --run-id=3DBall-ppo1 --env=3DBall/3DBall.x86_64 --no-graphics
▄▄▄▓▓▓▓
╓▓▓▓▓▓▓█▓▓▓▓▓
,▄▄▄m▀▀▀' ,▓▓▓▀▓▓▄ ▓▓▓ ▓▓▌
▄▓▓▓▀' ▄▓▓▀ ▓▓▓ ▄▄ ▄▄ ,▄▄ ▄▄▄▄ ,▄▄ ▄▓▓▌▄ ▄▄▄ ,▄▄
▄▓▓▓▀ ▄▓▓▀ ▐▓▓▌ ▓▓▌ ▐▓▓ ▐▓▓▓▀▀▀▓▓▌ ▓▓▓ ▀▓▓▌▀ ^▓▓▌ ╒▓▓▌
▄▓▓▓▓▓▄▄▄▄▄▄▄▄▓▓▓ ▓▀ ▓▓▌ ▐▓▓ ▐▓▓ ▓▓▓ ▓▓▓ ▓▓▌ ▐▓▓▄ ▓▓▌
▀▓▓▓▓▀▀▀▀▀▀▀▀▀▀▓▓▄ ▓▓ ▓▓▌ ▐▓▓ ▐▓▓ ▓▓▓ ▓▓▓ ▓▓▌ ▐▓▓▐▓▓
^█▓▓▓ ▀▓▓▄ ▐▓▓▌ ▓▓▓▓▄▓▓▓▓ ▐▓▓ ▓▓▓ ▓▓▓ ▓▓▓▄ ▓▓▓▓`
'▀▓▓▓▄ ^▓▓▓ ▓▓▓ └▀▀▀▀ ▀▀ ^▀▀ `▀▀ `▀▀ '▀▀ ▐▓▓▌
▀▀▀▀▓▄▄▄ ▓▓▓▓▓▓, ▓▓▓▓▀
`▀█▓▓▓▓▓▓▓▓▓▌
¬`▀▀▀█▓
Version information:
ml-agents: 0.25.0,
ml-agents-envs: 0.25.0,
Communicator API: 1.5.0,
PyTorch: 1.8.0+cu101
2021-03-22 11:30:27 INFO [learn.py:245] run_seed set to 364
2021-03-22 11:30:27 INFO [torch.py:58] default Torch device: cpu
![画像2](https://assets.st-note.com/production/uploads/images/48338590/picture_pc_16d176519a3b688469ed917fd4a6b3b7.png?width=1200)
(7) 学習停止
実行中インジケータのクリックで学習停止すると、モデルが生成されます。
![画像4](https://assets.st-note.com/production/uploads/images/48363317/picture_pc_1dfbe96dbd05c4f5b320ee4085152cae.png)
学習停止しなかった場合は、チェックポイントといっしょに途中経過のモデルが保存されているので、それを利用します。
3. GPUでの学習
GPUで学習することも可能です。
(1) メニュー「編集→ノートブックの設定」でGPUを選択
(2) 「2. Google Colabで学習」の(1)〜(4)と同様の手順を実行
(3) mlagents-learnを--torch-device付きで実行
!mlagents-learn 3DBall/3DBall.yaml --run-id=3DBall-ppo2 --env=3DBall/3DBall.x86_64 --no-graphics --torch-device=cuda:0
▄▄▄▓▓▓▓
╓▓▓▓▓▓▓█▓▓▓▓▓
,▄▄▄m▀▀▀' ,▓▓▓▀▓▓▄ ▓▓▓ ▓▓▌
▄▓▓▓▀' ▄▓▓▀ ▓▓▓ ▄▄ ▄▄ ,▄▄ ▄▄▄▄ ,▄▄ ▄▓▓▌▄ ▄▄▄ ,▄▄
▄▓▓▓▀ ▄▓▓▀ ▐▓▓▌ ▓▓▌ ▐▓▓ ▐▓▓▓▀▀▀▓▓▌ ▓▓▓ ▀▓▓▌▀ ^▓▓▌ ╒▓▓▌
▄▓▓▓▓▓▄▄▄▄▄▄▄▄▓▓▓ ▓▀ ▓▓▌ ▐▓▓ ▐▓▓ ▓▓▓ ▓▓▓ ▓▓▌ ▐▓▓▄ ▓▓▌
▀▓▓▓▓▀▀▀▀▀▀▀▀▀▀▓▓▄ ▓▓ ▓▓▌ ▐▓▓ ▐▓▓ ▓▓▓ ▓▓▓ ▓▓▌ ▐▓▓▐▓▓
^█▓▓▓ ▀▓▓▄ ▐▓▓▌ ▓▓▓▓▄▓▓▓▓ ▐▓▓ ▓▓▓ ▓▓▓ ▓▓▓▄ ▓▓▓▓`
'▀▓▓▓▄ ^▓▓▓ ▓▓▓ └▀▀▀▀ ▀▀ ^▀▀ `▀▀ `▀▀ '▀▀ ▐▓▓▌
▀▀▀▀▓▄▄▄ ▓▓▓▓▓▓, ▓▓▓▓▀
`▀█▓▓▓▓▓▓▓▓▓▌
¬`▀▀▀█▓
Version information:
ml-agents: 0.25.0,
ml-agents-envs: 0.25.0,
Communicator API: 1.5.0,
PyTorch: 1.8.0+cu101
2021-03-22 11:56:48 INFO [learn.py:245] run_seed set to 5208
2021-03-22 11:56:48 INFO [torch.py:58] default Torch device: cuda:0
![画像3](https://assets.st-note.com/production/uploads/images/48339413/picture_pc_a14db127070bba5f5b161af67bcba259.png?width=1200)
「3DBall」だと少し早くなった程度の模様。
この記事が気に入ったらサポートをしてみませんか?