Japanese Stable CLIP を試してみた

Unity、ML-Agents をインストールしてみる

いろいろと準備はしたので、機械学習するツールをインストールしてみます。
定番の 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」を開きます。
Package Manager で ML Agents Extensions が表示されることを確認します。

サンプルを実行する

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 ファイルのパスが表示されます。

Project タブの Assets > ML-Agents > Examples > 3DBall > TFModels を開き、右クリックで Import New Asset を選びます。
ファイル選択画面が出るので、上で表示された .onnx ファイルを開きます。

インポートすると、同じ「3DBall」が2個になってしまいわかりにくいので、インポートしたほうの名前を変更しました。

Hierarchy タブで 3DBall > Agent (下の画面の黄色い四角) をクリックし、表示された Inspector の Model に、先ほどインポートした 3DBall.onnx をドラッグ & ドロップします (下の画面の赤色四角)。

この状態で Unity の実行ボタンをクリックすると、1 つのキャラクターのみが学習済みのモデルで動作しているはずです。


コメント