クーの自由研究

マスターのかえるのクーは、弟子達の召喚術により新たな依り代を得てⅡ世として復活しました。

連休なのでUnity(ML-Agents)で遊ぼう(0日目)

わたくしは、どう生きればいいのかな?

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

見に行く気は全くなかったのですが、全く情報がないので、ネタバレを他の人にうっかり言われるのが「嫌」なだけです。こんな人は一定数必ずいます。

誰かの戦略に敗北したことになるのが癪ですが仕方ありません。

はたしてコペル君は冒険によって立派な鳥になれるのでしょうか?はたまた、シン・ガッチャマンのメンバーとして悪の組織「我楽多」と対峙するのでしょうか?(大嘘)

さて、今回は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が通信しながら、学習していきます。

このあたりがスタートラインになりそうです。

あまりに長くなりそうなので準備だけでいったん区切ります。(つづく)