2/25/2017

NVIDIA GPUが搭載されたWindows 10にTensorFlowとChainerをインストールしてDeep Learningの学習環境を構築してみる

こんにちは。今回はNVIDIAのGPUが搭載されたWindows 10にTensorFlow 1.0とChainerをインストールする手順を紹介します。

Deep Learning環境としてはUbuntuを利用したものが多くありますが、最近ではWindows 10でもこれらのフレームワークが動きます。NVIDIAのGPUが搭載されたゲーミングPCを持っていれば簡単に試すことができるようになっています。

Visual Studio 2015のインストール

まずは、Visual Studio 2015のビルド環境を整えます。CUDAのコードをビルドするときに必要になります。GPUを使わない場合は必要ありません。

たぶんVisual Studio 2015のどのエディションでも大丈夫だとおもいますが、注意点としては、インストール時に、カスタムからプログラミング言語の選択で、「Visual C++ の Common Tools for Visual C++ 2015」を選択することです。(こちらのページでインストールの流れがわかります

Visual Studio のダウンロードサイト https://www.visualstudio.com/downloads/

NVIDIA CUDA と cuDNN のインストール

Visual Studio 2015をインストールしたら、次に NVIDIA の GPU でプログラムを実行させるためのツールキットをインストールします。Visual Studio 2015に対応しているCUDA 8.0をダウンロードしてから、インストールを実行してください。GPUを利用しない場合はCUDAと下記のcuDNNは必要ありません。

CUDA Toolkit 8.0 https://developer.nvidia.com/cuda-downloads

次に多くのDeep Learningフレームワークが利用しているDNNのライブラリをダウンロードします。ダウンロードしたらZipを展開して、CUDAのインストールフォルダにコピーします。あと。このライブラリのダウンロードには、ユーザの登録が必要になりますので、先に登録しておいてください。

The NVIDIA CUDA® Deep Neural Network library (cuDNN) https://developer.nvidia.com/cudnn

Pyhtonのインストール

TensorFlowやChainerを動かすためのプログラミング環境を整えていきます。機械学習をはじめとしたプログラミング言語としてはPythonが人気です。Python環境としてはAnacondaが有名で分析や機械学習を行うためのライブラリも問題なく利用できます。Azure Machine LearningでもAnacondaが使われているようです。

Anacondaは下記のサイトよりダウンロードします。利用しているOSに合わせて適切なパッケージをインストールしてください。次をクリックしていくような感じで、標準の設定で大丈夫です。あと、PATHもそのまま登録するようにしてください。

https://www.continuum.io/downloads

Python環境のアップデート

スタートメニューからAnaconda Promptを実行して、簡単なアップデートを行います。

pip install --upgrade pip
pip install --upgrade -I setuptools

TensorFlow のインストール

TensorFlowのインストール方法は下記のURLに書かれています。最新のパッケージなどは下記URLを参考にしてください。

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md

スタートメニューからAnaconda Promptを実行して、TensorFlowをインストールします。TensorFlowはGPUを使う場合と、CPUで事項する場合のパッケージが異なるので注意してください。

GPUを使う場合は下記のコマンドです。

pip install --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.0.0-cp35-cp35m-win_amd64.whl

GPUを持っていない場合も念のため書いておきます。(上記コマンドを実行したら下記のコマンドは実行しないでください)

pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl

あと、Pythonの環境を分けてインストールする場合は、上記コマンドを実行する前に、環境を変更してくださいね。

conda create -n tensorflow python=3.5
activate tensorflow

これでTensorFlowが使える状態になりました。

Chainerのインストール

次に、Chainerをインストールします。Chainerは高レベルの機能を持っていながら複雑なネットワークを作ることができるDeep Learningのフレームワークです。

スタートメニューからAnaconda Promptを実行。とやりたいところですが、スタートメニューの Visual Studio 2015 から Developer Command Prompt for VS2015 を実行します。コマンドプロンプトが起動されたら下記のコマンドでChainerをインストールします。

pip install chainer --no-cache-dir

Chainerが動く環境になっているか確認してみる場合は、下記のコードをPythonで実行してみてください。こちらのページを参考にさせてもらいました。

import numpy as np
import chainer
 
xp = chainer.cuda.cupy
 
x = xp.asarray([[1, 2, 3], [4, 5, 6]], dtype=np.float32)
y = chainer.cuda.elementwise(
'T x',
'T y',
'y = x + 1;',
'test',
)(x)
 
print(y)

NVIDIA GPUの状態を知る

実際にDeep Learningの学習を始めるとGPUが熱くなりますが、下記のコマンドを使うことによりGPUの状態を知ることができます。

cd C:\Program Files\NVIDIA Corporation\NVSMI
nvidia-smi.exe

実行すると下記のようにGPUの状態を知ることができます。私の環境だとGPUが80度ぐらいになり、部屋の温度も4度ぐらい上がります。(^^;

ちなみに、部屋の温度はAzureのOMSで管理してます。

Sat Feb 25 19:34:07 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 376.53                 Driver Version: 376.53                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 980 Ti WDDM  | 0000:01:00.0     Off |                  N/A |
| 55%   79C    P2   226W / 250W |   5121MiB /  6144MiB |     99%      Default |
+-------------------------------+----------------------+----------------------+

さいごに

Windowsでも十分にDeep Learningが使えるようになったので便利になりましたね。ただ、一部のPythonコードは、Linuxのコマンドを使っているものもありますので、Windowsでは動かないものもあります。その場合は、Windows 10のBashを使うなど試してください。一番いいのは、環境依存の無いピュアPythonなコードを書くことですが。。。

あと、画像を使う場合はOpenCVを使いますが、下記のコマンドでインストールすることができますので、インストールしておいたほうが良いでしょう。

conda install -c menpo opencv3

なお、現段階ではPyhton3.5の環境向けに提供されていることから、環境を変更してからインストールする必要があるかもしれません。「TensorFlowのインストール」でも紹介しましたが、下記のコマンドでPython3.5の環境に変更してからインストールすることができます。

conda create -n tensorflow python=3.5
activate tensorflow
conda install -c https://conda.binstar.org/menpo opencv3

ではー。