- リンクを取得
- ×
- メール
- 他のアプリ
いろいろと準備はしたので、機械学習するツールをインストールしてみます。
定番の Unity と ML-Agents から始めてみます。
Python に ML-Agents をインストール
まずは Python に ML-Agents をインストールします。Windows Terminal から Anaconda Prompto を起動し、ML-Agents 用の仮想環境を用意します。
conda create -n ml-agents python=3.8
表示されている通り、
conda activate ml-agents
で仮想環境に入ります。そして pip で ML-Agents をインストール・・・の前に、PyTorch を CUDA 向けにインストールしておきます。
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
そのうえで、
pip3 install mlagents
でインストールします。
※念のため、PyTorch で CUDA が有効になっているかどうかを確認するには、以下のように Python からコマンドを実行することで可能です。
このように、torch.cuda.is_available() に True が返ってきたり、GPU の名前が返ってくれば OK です。ML-Agents のリポジトリをクローン
自分でコーディングする場合は必要ない場合もありますが、まずは動作確認も含めてサンプルを動かしてみたいので、ML-Agents のリポジトリをクローンします。
上記 GIT のリポジトリから ZIP ファイルをダウンロードして展開するか、git コマンドでクローンします。
git clone https://github.com/Unity-Technologies/ml-agents.git
Unity Hub のインストール
Unity 本体を管理する、Unity Hub をインストールします。これは winget でインストールできます。
winget install --id unity.UnityHub
Unity (エディター) のインストール
インストールした Unity Hub を起動し、Install > Install Editor をクリックします。
インストール可能なバージョンが表示されるので、2021.3.16f1 をインストールしました。(上の画面はインストール後の画面です)
Unity に ML-Agents パッケージを追加
インストールが終わったら、Unity Hub の画面に戻り Project > New Project をクリックします。
「3D (Core)」を選択し、Project name、Location を選択し Create project をクリックします。Unity のウインドウが起動したら、メニューの Windows > Package Manager をクリックします。
Package Manager の左上の「+」をクリックし、「Add package from disk」を選択します。ファイル選択ダイアログが出るので、ダウンロードした ml-agents フォルダ内の「com.unity.ml-agents」の「package.json」を開きます。Package Manager に戻るので、ML Agents が表示されることを確認します。そのうえで、再度左上の「+」をクリックし、「Add package from disk」を選択します。
今度は ml-agents フォルダ内の「com.unity.ml-agents.extensions」の「package.json」を開きます。
今度は ml-agents フォルダ内の「com.unity.ml-agents.extensions」の「package.json」を開きます。
Package Manager で ML Agents Extensions が表示されることを確認します。
Project タブの Assets > ML-Agents > Examples > 3DBall > TFModels を開き、右クリックで Import New Asset を選びます。
この状態で Unity の実行ボタンをクリックすると、1 つのキャラクターのみが学習済みのモデルで動作しているはずです。
サンプルを実行する
Unity の画面で、「Project」タブより Package > ML Agents > Samples > 3DBall を開きます。
「3DBall」のアイコンをダブルクリックすると、Import Unity Package 画面がでるので、ここで「Import」をクリックします。
一通りの処理が終わると、「Project」タブの「Assets」配下に「ML-Agents」が追加されます。
この「ML-Agents」から、Example > 3DBall > Scenes と開くと、「3DBall」が表示されるので、これをダブルクリックして開きます。
ここで一旦 Windows Terminal の conda に戻ります (ml-agents を activate した環境です)。
ダウンロードした ml-agents フォルダ移動し、以下のコマンドを実行します。
mlagents-learn config\ppo\3DBall.yaml --run-id=first3DBall
そうしたら、Unity の画面に戻り、実行ボタンをクリックします。
Unity の画面で、ボールを落とさないようにキャラクターがバランスをとるのと同時に、conda の画面では学習のログが出力されれます。
このとき、タスクマネージャーを見ると、GPU 1 (GeForce RTX 2060 のほう) が働いていることもわかります。
conda の画面で、「Mean Reward」が 100.000 に近づくと、ほぼ落とさなくなっている状態といえると思います。
conda の画面で ctrl+c を押すと、学習を止められます。この時、以下のように .onnx ファイルのパスが表示されます。
ファイル選択画面が出るので、上で表示された .onnx ファイルを開きます。
インポートすると、同じ「3DBall」が2個になってしまいわかりにくいので、インポートしたほうの名前を変更しました。
Hierarchy タブで 3DBall > Agent (下の画面の黄色い四角) をクリックし、表示された Inspector の Model に、先ほどインポートした 3DBall.onnx をドラッグ & ドロップします (下の画面の赤色四角)。
コメント
コメントを投稿