強化学習を実践していく上でシミュレータが必要なことがわかり、シミュレータとしてはUnityが便利だということがわかり、さらにUnity ML-Agentsを使うとPythonからUnityを動作させることが分かりました。
そして参考文献を探したところ目的にはまった下記の書籍を見つけましたがバージョンが古いせいでしょうか、まったく動作させることができずしばらく放置していました。
しかしなんとか動作させることができるようになったので備忘録としてまとめておきます。
Pythonで学ぶ強化学習 -入門から実践まで- サンプルコード
【手順1】Unityインストール
書籍(P.41)にしたがってUnityをインストールします。
私の環境ではUnityのバージョンは2017.3.1f1 (64-bit)を使用しました。
【手順2】Unity ML-Agents v0.4.0bダウンロード
サポートサイトに記載されていますが、下記のリンクからUnity ML-Agents v0.4.0bをダウンロードします。
https://github.com/Unity-Technologies/ml-agents/tree/0.4.0b
※2019/11/16現在の最新バージョンは0.11なのでかなり古いバージョンです。
【手順3】TensorFlowSharpプラグインダウンロード
書籍(P.42)にしたがってTensorFlowSharpプラグインをダウンロードをインストールします。
【手順4】Pythonインストール
書籍(P.43)にしたがってPythonをインストールし、仮想環境を構築します。
Pythonバージョンは3.6で問題ありません。
【手順5】Pythonパッケージインストール
書籍(P.44)に該当する箇所ですが、【手順2】でダウンロードしたファイルを使ってPythonパッケージをインストールします。
ダウンロードしたものの中にpythonフォルダがありますのでそのフォルダに移動してインストールコマンドを実行します。
1 | cd (ダウンロードした中のpythonフォルダ) |
【手順6】Numpyバージョン変更
ここが一番はまったポイントでした。
Numpyのバージョンは1.17.4がインストールされていたのですがこれを1.14.5に落とします。
1 | pip uninstall numpy |
(動作確認時に配列関連エラーでExceptionが発生していたのでnumpyのバージョンを疑い、結果動作させることができるようになりました。)
【手順7】プロジェクト設定
書籍(P.47~P.49)にしたがってプロジェクトの設定を行います。
【手順8】Unity Editorで動作確認
書籍(P.50~P.52)のexeを作っての実行はうまくいかないのであきらめました。
書籍(P.63)「Unity Editor上での学習」の方を実行したところ問題なく動作確認できました。
以上で一通り書籍に書かれているサンプルを実行させることができるようになります。
もしこれでもうまくいかない場合のため、動作確認ができた環境のライブラリバージョン一覧を書いておきますので、参考にして頂ければと思います。
1 | > pip list |
私と同じように動作確認をあきらめてしまった方の一助になれば幸いです。