前段
Macでのml-agents導入はこちらを参照してほしい。
今回はWindows用、それもtensorflow-gpu を使ってやりたい。基本的に以下の本家のページの通りだが
ハマリポイントがいくつかあったので、それには注意を促したい、というのがこの記事の趣旨だ。
あと1年後は100%忘れる自信がある私自身のためのものでもある。
環境設定
1、 ml-agents をダウンロード
https://github.com/Unity-Technologies/ml-agents/tags/0.8.0
をダウンロードして、適当なところに配置
2、 anaconda をインストール
ターミナルで「conda」と打って反応があれば既にインストール済み
3、 仮想環境を作る
conda info -e
で[ml-agents]があれば良い。なければ↓でつくる。
conda create -n ml-agents python=3.6
で仮想環境を作る(なんか聞かれたら「y」と入力)
conda activate ml-agents
で仮想環境切り替え。
4、 CUDA toolkit のインストール
Unity ML-agentsドキュメントによると、CUDA toolkitのバージョンは「9.0.176」限定であるらしいので、それをダウンロードする。ダウンロードサイト直リンク
5、cuDNN library のインストール
- NVIDIAサイトでcuDNNのサイトに行って、ダウンロードの手続きをする。ディベロッパー登録やらアンケートやらをやる必要がある。(こちらもCUDA toolkit 同様、バージョンが限定されているので要注意。「7.0.5」らしい。ダウンロードサイト直リンク )
- ダウンロードしたzipを展開すると「bin」「include」「lib」フォルダができるので、それをCUDA toolkitのインストール先である
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
に配置する。
6、環境変数の設定
CUDA_HOME
という環境変数を新規に作り、
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
を設定する。
次に、Path
環境変数に、以下の二つを追加する。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\CUPTI\libx64
(Unity ML-agentsドキュメントには「関連するパスを__置き換えろ__」と書いてあるが、CUDA toolkit インストール時に書き加えられたパスを消してはいけないので注意が必要)
以下の感じにパスが張っていればOK。
7、tensorflow-gpu のインストール
3で作った仮想環境で
pip install tensorflow-gpu==1.7.1
とやって tensorflow-gpu を仮想環境にインストール。
確認のために、
python
とやって、pythonを起動後、
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
で、tensorflow-gpu が起動するのを試してみる。
Found device 0 with properties ...
とかなんとか出れば成功。出てなければ、tensorflow-gpu がインストールできていない可能性がある。
8、ML-Agents が使うライブラリをインストール
★★★ここで注意★★★
このままML-Agents の使うライブラリをインストールしようとすると、せっかくいれたtensorflow-gpu に 通常のCPUを使う tensorflow が上書きインストールされてしまう。
なので、ml-agents/setup.py を以下のように編集する必要がある。
:
packages=['mlagents.trainers'], # Required
zip_safe=False,
install_requires=[
'mlagents_envs==0.8.0',
# 'tensorflow>=1.7,<1.8', # ←ここをコメントをしておく
'Pillow>=4.2.1',
'matplotlib',
'numpy>=1.13.3,<=1.14.5',
'jupyter',
:
そして、改めて以下を実行して ml-agents のライブラリをインストールする。
cd ml-agents-envs
pip install -e .
cd ..
cd ml-agents
pip install -e .
cd ..
確認のために
mlagents-learn
とやってみてちゃんとUnityロゴのアスキーアートが出ていれば成功。
念の為、先ほどのPythonを動かしてみて
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
で、tensorflow-gpu が正常に動いていることを確認する。(たまにCPUに切り替わってたりするので要注意)