Unity ML-Agentsのサンプルゲーム 『Puppo, The Corgi』 を実行してみる
「Unity Blog」で紹介されている「Unity ML-Agents」のサンプルゲーム「Puppo, The Corgi」の実行方法をまとめました。少し古いバージョン(v0.5)で作成されてます。
・『Puppo, The Corgi』― Unity ML-Agents Toolkit を活用した可愛さあふれるデモゲーム
1. サンプルプロジェクトのダウンロード
はじめに、サンプルプロジェクトのダウンロードを行います。
(1)「Puppo, The Corgiの紹介ページ」の「プロジェクトをダウンロード」ボタンをクリック。
(2) zipファイルを解凍。
「PuppoDemo」フォルダができます。
2. Unityのインストール
(1) Unityのサイトで、「Unity Hubをダウンロード」をクリックして、「Unity Hub」をダウンロード。
「Unity Hub」は複数のUnityのバージョンを管理するためのアプリです。
(2) 「Unity Hub」のインストーラを実行してインストール。
(3) 「Unity Hub」を起動。
(4) 「インストール」タブの「インストール」ボタンを押す。
(5) 「Unity 2019.3」を選択して次へボタンを押す。
(6) WindowsはWindows、macOSはmacOSのモジュールを選択して実行ボタンを押す。
成功すると「Unity 2019.3」がインストールされます。
3. プロジェクトを開く
次に、「Puppo」のプロジェクトを開きます。
(1) 「プロジェクト」タブの「リストに追加」ボタンを押し、ダウンロードして解凍した「PuppoDemo」フォルダを選択。
(2) バージョンで「2019.3」(先ほどインストールしたバージョン)を選択後、「PuppoDemo」の行をダブルクリック。
(3) ダイアログが表示されるので、「確認」ボタンと「Yes」ボタンを押す。
(4) シーン「Assets/PuppoTheCorgi/Scenes/Fetch」をダブルクリック。
Puppoのゲーム用のシーンが開きます。
(5) Unityエディタの実行ボタン(右三角)を押す。
Puppoのゲーム用のシーンが実行されます。
4. Anacondaのインストール
Anacondaで手軽にPython 環境を構築します。
(1) Anacondaのダウンロードサイトで対応プラットフォームの「Python 3.7 version」を選択し、インストーラをダウンロード。
「Anaconda Python 3.7 version」は「Python 3.6」も利用可能です。
・Anaconda Python/R Distribution - Free Download
(2) インストーラを実行し、インストーラの指示に従ってインストール。
(3) 「macOS」は「ターミナル」、「Windows」では、スタートメニューの「Anaconda(64-bit)」からコマンドプロンプトを起動して、以下のコマンドを入力。
Anacondaのバージョンが表示されたら、インストール成功です。
$ conda --version
conda 4.6.11
1. 学習の実行
(1) Pythonの仮想環境を作成。
Anacondaのコマンドで、Python 3.6の仮想環境を作ります。
$ conda create -n puppo python=3.6 anaconda
$ conda activate puppo
(2)「Unity ML-Agents 0.5.0」のインストール。
$ git clone https://github.com/Unity-Technologies/ml-agents.git -b 0.5.0
$ cd ml-agents/ml-agents
$ pip install .
$ cd ..
(3) 「ml-agents/config/trainer_config.yaml」の最後に以下のパラメータを追加。
DogBrain:
normalize: true
num_epoch: 3
time_horizon: 1000
batch_size: 2048
buffer_size: 20480
gamma: 0.995
max_steps: 2e6
summary_freq: 3000
num_layers: 3
hidden_units: 512
(4) 学習用のPythonスクリプトの実行。
「Start training by pressing the Play button in the Unity Editor.」と表示されたら準備完了です。
$ mlagents-learn ./config/trainer_config.yaml --train
▄▄▄▓▓▓▓
╓▓▓▓▓▓▓█▓▓▓▓▓
,▄▄▄m▀▀▀' ,▓▓▓▀▓▓▄ ▓▓▓ ▓▓▌
▄▓▓▓▀' ▄▓▓▀ ▓▓▓ ▄▄ ▄▄ ,▄▄ ▄▄▄▄ ,▄▄ ▄▓▓▌▄ ▄▄▄ ,▄▄
▄▓▓▓▀ ▄▓▓▀ ▐▓▓▌ ▓▓▌ ▐▓▓ ▐▓▓▓▀▀▀▓▓▌ ▓▓▓ ▀▓▓▌▀ ^▓▓▌ ╒▓▓▌
▄▓▓▓▓▓▄▄▄▄▄▄▄▄▓▓▓ ▓▀ ▓▓▌ ▐▓▓ ▐▓▓ ▓▓▓ ▓▓▓ ▓▓▌ ▐▓▓▄ ▓▓▌
▀▓▓▓▓▀▀▀▀▀▀▀▀▀▀▓▓▄ ▓▓ ▓▓▌ ▐▓▓ ▐▓▓ ▓▓▓ ▓▓▓ ▓▓▌ ▐▓▓▐▓▓
^█▓▓▓ ▀▓▓▄ ▐▓▓▌ ▓▓▓▓▄▓▓▓▓ ▐▓▓ ▓▓▓ ▓▓▓ ▓▓▓▄ ▓▓▓▓`
'▀▓▓▓▄ ^▓▓▓ ▓▓▓ └▀▀▀▀ ▀▀ ^▀▀ `▀▀ `▀▀ '▀▀ ▐▓▓▌
▀▀▀▀▓▄▄▄ ▓▓▓▓▓▓, ▓▓▓▓▀
`▀█▓▓▓▓▓▓▓▓▓▌
¬`▀▀▀█▓
INFO:mlagents.trainers:{'--curriculum': 'None',
'--docker-target-name': 'None',
'--env': 'None',
'--help': False,
'--keep-checkpoints': '5',
'--lesson': '0',
'--load': False,
'--no-graphics': False,
'--num-runs': '1',
'--run-id': 'ppo',
'--save-freq': '50000',
'--seed': '-1',
'--slow': False,
'--train': True,
'--worker-id': '0',
'<trainer-config-path>': './config/trainer_config.yaml'}
INFO:mlagents.envs:Start training by pressing the Play button in the Unity Editor.
(5) シーン「Assets/PuppoTheCorgi/Scenes/FetchTrainingScene」をダブルクリック。
Puppoの訓練用のシーンが開きます。
(6) Unityエディタの実行ボタン(右三角)を押す。
学習が開始されます。
(7) 学習完了したい時は、ターミナル(コマンドプロンプト)で「Control-C」。
「ml-agents/models/ppo-0/editor_Academy_ppo-0.bytes」にモデル(学習結果)が生成されます。
(8) モデルを「Fetch-Model.bytes」という名前に変更して、「Assets/PuppoTheCorgi/Fetch/TFModels.bytes」に上書き。
これで、ゲーム用シーンで利用するモデルが更新されます。
この記事が気に入ったらサポートをしてみませんか?