GPUなWindows PCでCNTKとTensorFlowとVisual Studio 2017とを共存させる方法 (2018年4月版) #cogbot #cntk

しばらく「深層学習」の学習ができずにいる間に、CNTK (Cognitive Toolkit)Tensorflow もアップデートしていました。

仕切り直しに改めてローカルマシンに共存する環境を作ろうと思ったところ、どうも 以前(2017年12月頃) より格段に簡単に作れそう。ありがとう、ツールのアップデート!

本稿では、ローカルマシン (NVIDIA の GPU あり) に以下のツール類を共存させる手順を紹介します。(2018年4月時点)

簡単です、各公式サイトの手順通りです。
CNTK 2.3 と TensorFlow 1.4 の頃のようにバージョン依存性は気にしなくてよさそうです。(やる前はドキドキでしたけど)


0. (私の場合) 関連するツールを丸ごとアンインストール・削除

CUDA 周りでゴタゴタするのは嫌だったので、関連するツールを丸ごとアンインストールしていったん身軽になることにしました。

作業開始前の私の環境は、ここ の通り。
CNTK 2.3 はバイナリセットの中に CUDA の DLL を同梱していたし、TensorFlow 1.4 は CUDA 8.0 + Visual Studio 2015 を要求していました。思えば、これが面倒の始まりでした。

現在は CNTK 2.5、TensorFlow 1.7 も CUDA 9.0 を利用するようになりました。CUDA 9.0  が欲しがる Visual Studio は 2017です。

私が削除したものは

  • CNTK (2.3)
  • TensorFlor (1.4)
  • CUDA 8.0
  • cuDNN 6.0
  • ついでに Anaconda3
  • ついでに Azure Machine Learning Workbench

です。

Visual Studio 2017 は残しました。アンインストールしていません。(この子は大丈夫だろうと信じていました)

 


1.  GPU ドライバー更新

まずは GPU ドライバーを更新。やらなくても支障はないとは思いますが、おまじないです。
CNTK の公式サイトにもドライバーアップデートしてねと載っていますし。

NVIDIA の GPU が載った PC であれば、”GeForce Experience” アプリがプリインストールされているはずなので、これで最新版のドライバーをダウンロード、インストールすれば OK。

 


2. CUDA Toolkit 9.0 インストール

CUDA 9.0 をインストールします。
これを書いている時点では 9.2 がリリースされているようですが、あとで悩むのは嫌なので 9.0 をインストールしておきます。

こちら からインストーラーをダウンロードします。無償のアカウント登録が必要です。なお、9.0 へのアップデート(パッチ)も公開されているので、これも続けてインストールするのがいいでしょう。

環境変数の設定が二つ必要です。

CUDA_PATH=”C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0″
CUDA_PATH_V9_0=”C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0″

が、これらについては、CUDA のインストーラーが自動的に入れてくれるので、手作業での設定は不要です。


3. cuDNN 7.x インストール

cuDNN 7.x を こちら からダウンロードします。

私は、”Download cuDNN v7.1.2 (Mar 21, 2018), for CUDA 9.0” をダウンロードしました。

zip を展開したら適当なフォルダーに置きます。インストーラーはありません。
CNTK のインストールガイドには “C:\local\cudnn-9.0-v7.0” とあるので、それに従っておきました。

 


4. CUB インストール

CUB を こちら からダウンロードします。

これもインストーラーはないので適当なフォルダーに展開します。
CNTK のインストールガイドによると “c:\local\cub-1.7.4” です。

CNTK のインストールガイドには、 “If you are installing CNTK for Python, you may skip this step.” とありますが、私は入れてみました。
(が、Path を通した覚えもないので、やっぱり不要だったかも)

以上で、GPU マシン限定のインストール手順は終了です。続いて、CPU 版 / GPU 版共通の手順です。

 


5. MKL インストール

Intel Math Kernel Library をダウンロードします。

こちら からバージョン 2018.0.1 が取得できます。

インストーラーではないので適当なフォルダーに展開します。
CNTK のインストールガイドによると “c:\local\mklml-2018.0.1” です。

 


6. OpenCV インストール

必須ではありませんが。画像系の深層学習ではお世話になることが予想されるので、OpenCV をダウンロードします。

こちら からダウンロードします。私は3.1.0 をダウンロードしました。

exe ファイルですが、自己解凍な圧縮ファイルです。適当なフォルダーに展開します。
CNTK のインストールガイドでは “C:\local\opencv3.10” です。

 


7. 環境変数の設定

環境変数の Path に以下を追加します。
私は深層学習など GPU を使うためのマシンなので、以下を Path の先頭に入れました。

  • “C:\local\opencv3.10\build\x64\vc14\bin”
  • “C:\local\mklml-2018.0.1\lib”
  • “C:\local\cudnn-9.0-v7.0\cuda\bin”
  • “C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin”
  • “C:\Program Files\NVIDIA Corporation\NVSMI”

ここまでの手順で、”C:\local” 以外にファイルを展開した方は、それなりのパスに変更してください。

 


8. Anaconda3 インストール

Anaconda3 をインストールします。

多分 4.4.0 でもいいと思いますが、CNTK インストールガイドに

“We have been testing CNTK with Anaconda3 4.1.1 (64-bit) and Python versions 2.7 and 3.5, as well as Anaconda3 4.3.1 with Python version 3.6.”。

とあったので、私は今回は4.3.1 にしました。あとで悩むのは嫌なので。

インストーラーは こちら からダウンロードします。私は “Anaconda3-4.3.1-Windows-x86_64.exe” を選びました。

私はこの後で、Azure Machine Learning Workbench とか SONY の Neural Network Console とかを入れるので、複数の Python が共存する予定です。
ということで、Python のパスを環境変数に追加するのはやめました。ここでインストールする Python は、Anaconda Prompt から実行するので問題ありません。

anaconda3_341_installer

 


9. CNTK 2.5 インストール

ようやく CNTK 2.5 のインストールです。
私はメインを Python 3.6 の CNTK 2.5 にしようと思い、Python の仮想環境を作らずに直接 CNTK をインストールしました。(他の環境がほしければ、そちらを仮想環境にすればいいし)

Anaconda Prompt を起動して、

pip install <wheelのURL>

を実行します。

wheel ファイルは こちら に書かれています。私はここまでの手順から、 Python3.6 用の CNTK 2.5 GPU 用を選びました。

こんな感じです。

pip install https://cntk.ai/PythonWheel/GPU/cntk_gpu-2.5-cp36-cp36m-win_amd64.whl

インストールが完了したら、

python -c “import cntk; print(cntk.__version__)”

で、CNTK 2.5 がインストールされたことを確認します。

 


10. CNTK 2.5 サンプルのインストール

何かとお世話になるはずの、サンプルをインストールします。

python -m cntk.sample_installer

です。

終わったら、

cd CNTK-Samples-2-5\Tutorials\NumpyInterop

してから

python FeedForwardNet.py

します。

GPU 有効でスクリプトが実行されるのが確認できれば OK です。CUDA や cnDNN のバージョンも確認できます。

cntk25_sample_run

 


11. (オマケ) Python 3.5 の CNTK 2.5 環境を作成

ここは必須の手順ではありません。私はこのあと Machine Learning Workbench をインストールする(こいつが Python 3.5)予定なので、何かあった時の確認用に同じ環境を用意しておこうということです。

conda create –name cntk-py35 python=3.5 numpy scipy h5py jupyter
activate cntk-py35

してから、

pip install <Python 3.5用の CNTK 2.5 GPU wheel>

します。

CNTK のインストール自体には問題ないはずですが、「pip のバージョンが古いよ」と言われるので、一応、

python -m pip install –upgrade pip

で pip をアップデートします。

念のため、こちらでも先ほどの “FeedForward.py” で動作確認しておきます。問題なさそう。
終わったら、この後の TensorFlow インストールのために、

deactivate cntk-py35

しておきます。 安全のために、Anaconda Prompt も一回抜けておくほうがいいかも。


12. TensorFlow 1.7 インストール

いよいよ TensorFlor 1.7 をインストールします。

改めて Anaconda Prompt に入りなおして、以下を順番に実行します。

conda create -n tensorflow pip python=3.6
activate tensorflow
pip install –ignore-installed –upgrade tensorflow-gpu

これで GPU 版 TensorFlow のインストールが完了。

ここでも「pip のバージョンが」と言われるので、念のため、

python -m pip install –upgrade pip

しておきます。

さらに、どうも pandas が見つからないし、Jupyter も入っていないようなので、

pip install pandas
pip install jupyter

を実行します。

これで TensorFlow 1.7 のインストールが完了です。

 


13. TensorFlow サンプルのインストール

サンプルをインストールして、動作確認してみます。

git clone https://github.com/tensorflow/models.git

でサンプルをインストールしてから、

cd models/samples/core/get_started/
python premade_estimator.py

を実行します。

tf17_sample_run

TensorFlow 1.7 も無事インストールできました。おつかれさまでした。

 


14. (オマケ) Azure Machine Learning Workbench インストール

ここからはオマケ、Machine Learning Workbench をインストールします。

念のための注意書きとして、インストーラーはいったんローカルディスクに保存して、それを実行しろとのこと。
もう一つの注意点、Azure サブスクリプションに “Machine Learning Experimentation” を作成する必要があります。

ということで手順は こちら を参照してください。

Machine Learning Workbench は miniconda で自分専用の環境を作ります。上の手順で作った Anaconda 環境とは共存可能なので、気にせずにインストールしてください。

 


15. (オマケ) Neural Network Console インストール

これもオマケ手順、SONY の Neural Network Console もインストールしてみます。

NNC はブラウザー版もあるので、必ずしもローカルマシンにインストールする必要はないのですが、せっかくなので Windows 版をインストールしてみます。
なお NNC も miniconda している模様。やはり Anaconda 環境のことは気にせずにインストールしてみます。

こちら でアカウント登録して、インストーラーをダウンロードします。あとは普通にインストールするだけ。

インストール後に設定画面で “Processor Type” を “GPU” にすれば、GPU 有効になります。

nnc_settings_gpu

 


オマケまで含めて、複数の深層学習ツールを共存させることができました。

・・・長かったですね、おつかれさまでした。私も疲れました(笑)

いろんなツールを使って、深層学習をお楽しみください。
MS っぽさを追求したかったら CNTK、情報がたくさん見つかる TensorFlow、ノンコードで深層学習が楽しめる Neural Network Console と便利に使い分けるのもアリですね。

GPU を積んだマシンを持っていなくて、でも高速に学習させたい方は DSVM をどうぞ。シャットダウン忘れで課金で泣かないことだけ注意すれば、いい環境です。

 

広告
カテゴリー: AI, CNTK, Machine Learning Workbench, 深層学習 タグ: , , , , , , , パーマリンク

GPUなWindows PCでCNTKとTensorFlowとVisual Studio 2017とを共存させる方法 (2018年4月版) #cogbot #cntk への1件のフィードバック

  1. ピンバック: GPUなWindows PCでCNTKとTensorFlowとVisual Studio 2017とを共存させる方法 (2017年12月版) #cogbot #cntk | 技術との戯れ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

w

%s と連携中