わたくしは、どう生きればいいのかな?
こんにちわ、こんばんわ。かえるのクーの助手の「井戸中 聖」(いとなか セイ)でございます。明日ジブリの新作行くかどうか思案中です。というか、娘が日中ともだちと遊びにいくので、かえってきてから一緒にレイトショーにいくかどうか、娘次第です。

見に行く気は全くなかったのですが、全く情報がないので、ネタバレを他の人にうっかり言われるのが「嫌」なだけです。こんな人は一定数必ずいます。
誰かの戦略に敗北したことになるのが癪ですが仕方ありません。
はたしてコペル君は冒険によって立派な鳥になれるのでしょうか?はたまた、シン・ガッチャマンのメンバーとして悪の組織「我楽多」と対峙するのでしょうか?(大嘘)
さて、今回はUnityのML-Agentsで遊ぼうと思います。門下生の「井戸中 瑠璃」がやっていましたが、わたくしもやってみることにします。といってもチュートリアルをお気軽にやるだけですので、あしからず。
例によって、終わるまで何日かかるかわかりませんが、よろしくお願いします。
Unity いまさらのML-Agents入門 はじまり、はじまり
Unity入れるところからです。
入れるバージョンはとっても迷います。言語やツール間のバージョン縛りが結構あり、ハマるとかなりの時間ロスになります。とはいえ、ML-Agenstsの最新版をいれてみたいので、あとは芋ずるでいれていくことにします。
最新はRelease20のようです。
使うだけなのでDownloadして展開します。
Pythonは3.8.13以上、Unityは2021.3以上のようです。欲張らず該当バージョンに合わせてみます。
1. ソースをダウンロードしてC:\に展開しました。

2. Anaconda3-2023を入れてみます。玉砕覚悟でおもいきりよく行きます。

3. condaコマンドで pythonの3.8をいれてみます。3.8系の最新が入るはずです。
注意:Win11だとOKだったけどWin10だと3.8系入れるとお亡くなり。ご注意ください。
base状態でいれないほうがよいかもしれません。

4. python3.8の環境を準備して切り替えます。


5.Unityは UnityHubから2021.3をいれます。ついでに2022.3も入れました。

6. Visual Studioは2019か2022か迷いますがRelease20が2022年にでているので、VSも2022にしてみます。(このへんは合わないと再(追加)インストールです。)
もちろんcommunity版です。

Unityの開発をチェックしてインストールします。
7.Unity Hubから展開したML-AgentsのC:\ml-agents-develop\ProjectをOpen(add project from disk)します。

最初は起動にかなり時間がかかります。

8. Unityが起動したら、Assets/ML-Agents/Examples/Soccerをクリックしてその中のScenes/SoccerTwosを選択して起動(ダブルクリック)します。
サンプルの⚽サッカーがOpenします.画面上部の[▶]をクリックします

9.強化学習で学習済のニューラルネット情報を使い、試合を始めます。かなり下手です。

10.先ほどのconda環境で、mlagentsのpythonパッケージをインストールします。
(もちろん先にいれておいてもOKです)

11. Pythonで強化学習を行うプログラムを起動します。
mlagents-learn config/poca/SoccerTwos.yaml --run-id=SoccerTwos01 --resume
初回は--resume なしで実行します。run-idで指定した環境にどんどん学習していきます。
途中でよく止めるので、続行するときは --resumeします。
まったく新しく学習させるときは run-idを別にします。
If you cannot immediately regenerate your protos, some other possible workarounds are:
1. Downgrade the protobuf package to 3.20.x or lower.
2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
2つエラーがでました。protobufパッケージが新しすぎるのと、環境設定を指定せよとのお叱りです。
12.いわれたまま、やってみます。protobufパケージを3.20にしてみます。

環境変数も設定してみます。
![]()
1.6.0以降のPyTorchを入れなさいと怒られました。

リリースノートには1.8.0以降入れなさいとありました。とりあえずバージョン指定なしで conda install torch torchvision torchaudio してみました。

これでどうでしょう。同じエラーでダメでした。
真面目にバージョン指定していれてみます。
実験マシンはCUDA GPUがはいっているので CUDA 11.7をいれてみます。

インストールするから、VisualStudio 2022止めてと言われました。

今度は進みました。

Pytorchの1系をいれてみます。

condaコマンドがきかなかったので、condaの管理をはずれますが、pipでいれてみました。(正常にインストールできました)

ML-Agentsうごきました。
Unity画面側を[▶]Startさせると学習がはじまります。

最初からの学習となるので、ボールをほとんどおいかけず試合になりません。ここから学んでいきます。
UnityのC#プログラムの動作結果と、Pythonのml-agentsが通信しながら、学習していきます。
このあたりがスタートラインになりそうです。
あまりに長くなりそうなので準備だけでいったん区切ります。(つづく)