Unityの機械学習ツールであるML-Agentsは、ゲームエンジンを利用した進化的な学習プロジェクトを開発するための強力なツールです。この記事では、Condaを使用した環境構築と、CUDA 11.8を使ってグラフィックスの効率的な計算を実行する方法を解説します。
目次
1. 環境構築に必要なツール
1.1 Unity
- Unity Hub を使用して、Unity Editorをインストールします。
- バージョンは最新のLTSバージョンを使用することを推奨します。
1.2 NVIDIA Driverのインストール
- NVIDIAの公式サイト からお使いのGPUに対応した最新のNVIDIAドライバーをダウンロードします。
- インストーラーを実行してドライバーをインストールします。
- インストール後、以下のコマンドで正しくインストールされたことを確認します:
nvidia-smi
1.3 CUDA Toolkitのインストール
- CUDA Toolkit 11.8 をダウンロードしてインストールします。
- インストール後、以下のコマンドでバージョンを確認します:
nvcc --version
2. Conda環境の構築
2.1 Condaのインストール
以下のサイトから Anaconda または Miniconda をダウンロードし、インストールしてください。Minicondaのインストールを推奨します。
2.2 仮想環境の作成
- Conda が正しくインストールされていることを確認:
conda --version
- 新しい仮想環境を作成:
conda create -n mlagents python=3.10.12
- 仮想環境をアクティブ化:
conda activate mlagents
2.3 必要なライブラリのインストール
- CUDA対応のPyTorchをインストール:
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
- CMakeがインストールされていない場合、以下のコマンドでインストール:
conda install -c conda-forge cmake
- ML-Agents Toolkitをダウンロード:
curl -L -o ml-agents-release_22.zip https://github.com/Unity-Technologies/ml-agents/archive/release_22.zip
- ダウンロードしたZIPファイルを解凍:
unzip ml-agents-release_22.zip
- 解凍したフォルダに移動:
cd ml-agents-release_22/ml-agents-release_22
- 依存関係をインストール:
pip install -e ./ml-agents-envs --config-settings editable_mode=compat
pip install -e ./ml-agents --config-settings editable_mode=compat
2.4 学習の開始
学習を開始するには、以下のコマンドを実行します:
mlagents-learn config/ppo/3DBall.yaml --run-id=run1 --torch-device cuda:0 --force
2.4.1 コマンドオプションの説明
config/ppo/3DBall.yaml
:使用する学習設定(PPOアルゴリズムの設定ファイル)。--run-id=run1
:学習セッションの識別子(ログやモデルの保存先に影響)。--torch-device cuda:0
:GPU(CUDAデバイス0)を使用する指定。--force
:既存のモデルやログを上書きして強制的に実行する。--initialize-from=run1
:以前の学習セッション(run1)からモデルを初期化する。
2.4.2 –initialize-fromオプションを使用したコマンド例
mlagents-learn config/ppo/3DBall.yaml --run-id=run2 --torch-device cuda:0 --force --initialize-from=run1
3. Unityでの動作確認
- Unityプロジェクトを作成し、ML-AgentsのSDKをインストールします。
- 学習をUnity Editorで開始します。以下のメッセージが表示されます:
- 学習が完了すると、
results
フォルダにモデルファイルが生成されます。
Start training by pressing the Play button in the Unity Editor.