Unity ML-Agents V0.4.0bがなんとか動くようになった件

強化学習を実践していく上でシミュレータが必要なことがわかり、シミュレータとしては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
2
cd (ダウンロードした中のpythonフォルダ)
pip install .

【手順6】Numpyバージョン変更

ここが一番はまったポイントでした。
Numpyのバージョンは1.17.4がインストールされていたのですがこれを1.14.5に落とします。

1
2
pip uninstall numpy
pip install numpy==1.14.5

(動作確認時に配列関連エラーでExceptionが発生していたのでnumpyのバージョンを疑い、結果動作させることができるようになりました。)


【手順7】プロジェクト設定

書籍(P.47~P.49)にしたがってプロジェクトの設定を行います。

【手順8】Unity Editorで動作確認

書籍(P.50~P.52)のexeを作っての実行はうまくいかないのであきらめました。
書籍(P.63)「Unity Editor上での学習」の方を実行したところ問題なく動作確認できました。

以上で一通り書籍に書かれているサンプルを実行させることができるようになります。

もしこれでもうまくいかない場合のため、動作確認ができた環境のライブラリバージョン一覧を書いておきますので、参考にして頂ければと思います。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
> pip list
Package Version
------------------ -------------------
absl-py 0.8.1
astor 0.8.0
atomicwrites 1.3.0
attrs 19.3.0
backcall 0.1.0
bleach 1.5.0
certifi 2019.9.11
colorama 0.4.1
cycler 0.10.0
decorator 4.4.1
defusedxml 0.6.0
docopt 0.6.2
entrypoints 0.3
gast 0.3.2
grpcio 1.11.0
html5lib 0.9999999
importlib-metadata 0.23
ipykernel 5.1.3
ipython 7.9.0
ipython-genutils 0.2.0
ipywidgets 7.5.1
jedi 0.15.1
Jinja2 2.10.3
jsonschema 3.1.1
jupyter 1.0.0
jupyter-client 5.3.4
jupyter-console 6.0.0
jupyter-core 4.6.1
kiwisolver 1.1.0
Markdown 3.1.1
MarkupSafe 1.1.1
matplotlib 3.1.1
mistune 0.8.4
more-itertools 7.2.0
nbconvert 5.6.1
nbformat 4.4.0
notebook 6.0.2
numpy 1.14.5
packaging 19.2
pandocfilters 1.4.2
parso 0.5.1
pickleshare 0.7.5
Pillow 6.2.1
pip 19.3.1
pluggy 0.13.0
prometheus-client 0.7.1
prompt-toolkit 2.0.10
protobuf 3.5.2
py 1.8.0
Pygments 2.4.2
pyparsing 2.4.5
pyrsistent 0.15.5
pytest 5.2.3
python-dateutil 2.8.1
pywin32 227
pywinpty 0.5.5
PyYAML 5.1.2
pyzmq 18.1.1
qtconsole 4.5.5
Send2Trash 1.5.0
setuptools 41.6.0.post20191030
six 1.13.0
tensorboard 1.7.0
tensorflow 1.7.1
termcolor 1.1.0
terminado 0.8.3
testpath 0.4.4
tornado 6.0.3
traitlets 4.3.3
unityagents 0.4.0
wcwidth 0.1.7
Werkzeug 0.16.0
wheel 0.33.6
widgetsnbextension 3.5.1
wincertstore 0.2
zipp 0.6.0

私と同じように動作確認をあきらめてしまった方の一助になれば幸いです。