わたくしは、どう生きればいいのかな?
こんにちわ、こんばんわ。かえるのクーの助手の「井戸中 聖」(いとなか セイ)でございます。明日ジブリの新作行くかどうか思案中です。というか、娘が日中ともだちと遊びにいくので、かえってきてから一緒にレイトショーにいくかどうか、娘次第です。
見に行く気は全くなかったのですが、全く情報がないので、ネタバレを他の人にうっかり言われるのが「嫌」なだけです。こんな人は一定数必ずいます。
誰かの戦略に敗北したことになるのが癪ですが仕方ありません。
はたしてコペル君は冒険によって立派な鳥になれるのでしょうか?はたまた、シン・ガッチャマンのメンバーとして悪の組織「我楽多」と対峙するのでしょうか?(大嘘)
さて、今回は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が通信しながら、学習していきます。
このあたりがスタートラインになりそうです。
あまりに長くなりそうなので準備だけでいったん区切ります。(つづく)