Unity ML-agentsも正式リリースされたことで、とりあえず触ってみようということでまずは環境構築した。
起動するまでにエラーがいくつか出たので、メモをのこしておきました。
誰かのためになればいいのですが・・・。
最終的に正常に動作した環境
種類 | バージョン | 備考 |
---|---|---|
Windows10 | - | |
ML-Agents | release 6 | |
Python | 3.7(3.7.9) | 3.8 にするとtensorflow が対応してないので注意 |
TensorFlow | 2.3.0 | vc_redist.x64.exe インストールしていないとエラーになるので注意 |
環境構築手順
GitHub にドキュメントがまとめられているのでこれを見るのが吉。
身も蓋もないですが、本家で、現状これより良いものはない気がします。
エラー対応メモ
Python と TensolFlow のバージョンの問題
ImportError: DLL load failed while importing _pywrap_tensorflow_internal
うーんと思って調べると、TensolFlow のバージョンでエラーって言っている人が多かった。
そこで TensorFlow のサイト行ってみてみたら、そもそもPython のバージョンが 3.5-3.7 になっていて、
自分が最新版ならいいでしょって 3.8 でやっていたのがダメだったというオチ。
(Unity ML-Agent は Python が 3.6以上となっていたので、3.8 で始めたのだが)
以下で対応。
conda create -n ml-agents python=3.7
TensorFlow の環境構築が足りなかった
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
が出てうまくいかない。
こちらを確認すると、おそらくだが TensorFlow のバックグラウンドで動作するための C++ の環境が足りていなかったのだと思う。
以下で対応。
こちらから vc_redist.x64.exe をダウンロードしてインストールすることでエラーが出なくなった。
補足
TensorFlowのバージョンを2.0にまで下げてさらに実行するこどでも対応可能とのこと。
試してみたが、たしかにエラーはなくなる。
以下で対応。
pip isntall tensorflow==2.0.0
yaml での typo
ValueError: 'pro' is not a valid TrainerType
ググっても全然情報が出てこないと思ったら、yaml ファイルの設定を typo していた。
この後もエラーがいくつが出たが、すべてyaml の typo だった。
設定ファイルは丁寧に書きましょう。