コンテンツにスキップするには Enter キーを押してください

windows10 に TensorFlow + Keras の環境を構築する。

はじめに

今までディープラーニングのフレームワークとしては、chainerをubuntu上で使ってきましたが
ubuntuとwindows10のデュアルブートはwindows10がアップデートするとブートが壊れてubuntuにログインできなくなったりといろいろ不安定でした。
そしてgoogleの深層学習フレームワークであるtensorflow + それを便利に利用できるフレームワークとしてのKerasがwindows10で利用できるということでちょっと試してみようと思います。




 

windows10にtensorflowにインストール

Tensorflowの公式によるとwindowsにtensorflowを入れる場合はanacondaを使った方法とネイティブのpipによる方法があるよということです。
anacondaはいろいろ便利なのですが、公式にwindowsは対応していないそうなので今回はネイティブのpythonを使用します。

 

python3.5.xのインストール

python.argからpython3.5.xをインストールします。tensorflowは3.5系しか現在動かないそうなのでそれ以外はインストールしないでください。
インストールするときは、以下の画像のように
pipをインストールすると、環境変数に加えるにチェックを入れてください。

 

CUDA & cuDNN のインストール

グラボを使わない人は飛ばしてください。
CUDAの開発者用サイトからCUDAをインストールします。
これはsetupファイルなので起動するだけでインストールできます。
次にcuDNNですが、これはユーザー登録などが必要で、すこし面倒です。
NvidiaのDeveloperサイトからインストールします。
「Download cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0」を選んでください。
v6.0は現在うまくいかないそうです。
ダウンロードしたcuDNNの中身は
cuda/
bin/cudnn64_5.dll
include/cudnn.h
lib/x64/cudnn.lib
という構成になっているので、これを対応した場所へ移動させます。
cudaをインストールすると
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
以下にcudaの色々なものが展開されているのですが、そこにbin,include,libがそれぞれあるので同じものは同じとこに置いてあげます。
例えば
cudnn.hはC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include\に移動させるという要領です。
cuDNNのインストールはこれで終わりです。

 

tensorflowのインストール

$ pip3 install --upgrade tensorflow-gpu # グラボを使わない人は最後の-gpuをつけない。

だけです。
以下で確認してください。

$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
2017-05-29 08:22:31.565875: W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\platform\cp
w library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU comput
2017-05-29 08:22:31.566698: W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\platform\cp
w library wasn't compiled to use SSE2 instructions, but these are available on your machine and could speed up CPU compu
2017-05-29 08:22:31.566922: W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\platform\cp
w library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU compu
2017-05-29 08:22:31.567172: W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\platform\cp
w library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU com
2017-05-29 08:22:31.567408: W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\platform\cp
w library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU com
2017-05-29 08:22:31.567644: W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\platform\cp
w library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU comput
2017-05-29 08:22:31.567889: W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\platform\cp
w library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU compu
2017-05-29 08:22:31.568106: W c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\platform\cp
w library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU comput
2017-05-29 08:22:31.930970: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runt
ice 0 with properties:
name: GeForce GTX 1050 Ti
major: 6 minor: 1 memoryClockRate (GHz) 1.392
pciBusID 0000:01:00.0
Total memory: 4.00GiB
Free memory: 3.33GiB
2017-05-29 08:22:31.931096: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runt
2017-05-29 08:22:31.931653: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runt
2017-05-29 08:22:31.932152: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runt
TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1050 Ti, pci bus id: 0000:01:00.0)
>>> print(sess.run(hello))
b'Hello, TensorFlow!'
>>>

sessionを開始すると色々なんか出てきますが、最後の方にGeForce GTX 1050 Tiとグラボがちゃんと認識されていることがわかります。

tensorflowのインストールはこれで終わりです。

 

Keras のインストール

$ pip install keras
ごちゃごちゃエラー

エラーがでたscipyが入れられないとのこと。
python packages #scipyから
「scipy‑0.19.0‑cp35‑cp35m‑win_amd64.whl」をダウンロードする。
numpyもpython packages #numpyから「numpy‑1.12.1+mkl‑cp35‑cp35m‑win_amd64.whl」をダウンロードします。これは通常のインストールのもの+mklというものが入っていますが、たまに必要になるので。

$ cd .\Downloads\
$ pip install .\scipy-0.19.0-cp35-cp35m-win_amd64.whl
...
Successfully installed scipy-0.19.0
$ pip install .\numpy‑1.12.1+mkl‑cp35‑cp35m‑win_amd64.whl
...
Successfully installed numpy-1.12.1+mkl

とscipyとnumpy+mklをインストールできたので、今度こそkerasをインストールする。

$ pip install keras
...
Successfully installed keras-2.0.4 theano-0.9.0
PS C:\Users\username> python
Python 3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 16:02:32) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import keras
Using TensorFlow backend.
>>>

とうまくいきました。
今度実際にkerasを使ってみようと思います。

以下は参考程度に。

 

Anacondaでtensorflowをインストールする

一応こっちも試してみたので、書いておきます。
こっちのほうがずっと大変だったので、上の方法をおすすめします。
 

anacondaのインストール

anacondaのページからダウンロードします。
2017/05/28現在はpython3.6のようです。ちなみにwindows版のtensorflowのサポートはpython3.5.xのみ対応となっています。
インストールはセットアップファイルをダウンロードしてきて起動するだけです。

 

tensorflowのインストール

基本的にtensorflowのページの通りに行います。
まずはcondaでtensorflowの環境を作ります。
この時、python3.5.xにしないとtensorflowが動かないので指定してあげます。

PS C:\Users\username> conda create -n tensorflow python=3.5.2
Fetching package metadata ...........
Solving package specifications: .

Package plan for installation in environment C:\Users\username\Anaconda3\envs\tensorflow:

The following NEW packages will be INSTALLED:

    pip:            9.0.1-py35_1
    python:         3.5.2-0
    setuptools:     27.2.0-py35_1
    vs2015_runtime: 14.0.25123-0
    wheel:          0.29.0-py35_0

Proceed ([y]/n)? y

python-3.5.2-0 100% |###############################| Time: 0:00:00  40.05 MB/s
setuptools-27. 100% |###############################| Time: 0:00:00  49.94 MB/s
wheel-0.29.0-p 100% |###############################| Time: 0:00:00   8.05 MB/s
pip-9.0.1-py35 100% |###############################| Time: 0:00:00  38.04 MB/s
#
# To activate this environment, use:
# > activate tensorflow
#
# To deactivate this environment, use:
# > deactivate tensorflow
#
# * for power-users using bash, you must source
#

しかし、このときwindowsPowerShellを利用しているとactivateできない問題が出てくるので(コマンドプロンプトを使っているひとは多分大丈夫)、パッチファイルをこのページからダウンロードして適当に展開しておきます。そして、以下のようにanacondaのScripts以下に置きます。

 cp .\activate.ps1 C:\Users\username\Anaconda3\Scripts\
 cp .\deactivate.ps1 C:\Users\username\Anaconda3\Scripts\

これでactivateできるようになりますが、ps1ファイルを実行できない場合は管理者権限でwindowsPowerShellを開いて以下を実行してください

Set-ExecutionPolicy Unrestricted

作ったらアクティベイトしてそこにtensorflowをインストールします。
GPU:(tensorflow)C:> pip install –ignore-installed –upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.1.0-cp35-cp35m-win_amd64.whl
CPU:(tensorflow)C:> pip install –ignore-installed –upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.1.0-cp35-cp35m-win_amd64.whl

[tensorflow] PS C:\Users\username> pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windo
ws/cpu/tensorflow-1.1.0-cp35-cp35m-win_amd64.whl
Collecting tensorflow==1.1.0 from https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.1.0-cp35-cp35m-win_
amd64.whl
  Downloading https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.1.0-cp35-cp35m-win_amd64.whl (19.4MB)
    100% |################################| 19.4MB 78kB/s
Collecting protobuf>=3.2.0 (from tensorflow==1.1.0)
  Downloading protobuf-3.3.0.tar.gz (271kB)
    100% |################################| 276kB 3.3MB/s
Collecting six>=1.10.0 (from tensorflow==1.1.0)
  Downloading six-1.10.0-py2.py3-none-any.whl
Collecting numpy>=1.11.0 (from tensorflow==1.1.0)
  Downloading numpy-1.12.1-cp35-none-win_amd64.whl (7.7MB)
    100% |################################| 7.7MB 198kB/s
Collecting werkzeug>=0.11.10 (from tensorflow==1.1.0)
  Downloading Werkzeug-0.12.2-py2.py3-none-any.whl (312kB)
    100% |################################| 317kB 3.3MB/s
Collecting wheel>=0.26 (from tensorflow==1.1.0)
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
    100% |################################| 71kB 4.6MB/s
Collecting setuptools (from protobuf>=3.2.0->tensorflow==1.1.0)
  Downloading setuptools-35.0.2-py2.py3-none-any.whl (390kB)
    100% |################################| 399kB 3.3MB/s
Collecting packaging>=16.8 (from setuptools->protobuf>=3.2.0->tensorflow==1.1.0)
  Downloading packaging-16.8-py2.py3-none-any.whl
Collecting appdirs>=1.4.0 (from setuptools->protobuf>=3.2.0->tensorflow==1.1.0)
  Downloading appdirs-1.4.3-py2.py3-none-any.whl
Collecting pyparsing (from packaging>=16.8->setuptools->protobuf>=3.2.0->tensorflow==1.1.0)
  Downloading pyparsing-2.2.0-py2.py3-none-any.whl (56kB)
    100% |################################| 61kB 3.9MB/s
Building wheels for collected packages: protobuf
  Running setup.py bdist_wheel for protobuf ... done
  Stored in directory: C:\Users\username\AppData\Local\pip\Cache\wheels\1b\42\a0\4c7343df5b629ec9c75655468dce7652b28026896b0209ba55
Successfully built protobuf
Installing collected packages: six, pyparsing, packaging, appdirs, setuptools, protobuf, numpy, werkzeug, wheel, tensorflow
Successfully installed appdirs-1.4.3 numpy-1.12.1 packaging-16.8 protobuf-3.3.0 pyparsing-2.2.0 setuptools-35.0.2 six-1.10.0 tensorflow-1.1.0 werkzeug-0.12.
2 wheel-0.29.0
[tensorflow] PS C:\Users\username> 

インストールできたら以下を実行してみます。

[tensorflow] PS C:\Users\xaver> python
Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul  5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow
>>> hello = tf.constant('Hello, TensorFlow!')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'tf' is not defined
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
2017-05-28 20:55:26.429742: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cp
u_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your m
achine and could speed up CPU computations.
2017-05-28 20:55:26.430980: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cp
u_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE2 instructions, but these are available on your
machine and could speed up CPU computations.
2017-05-28 20:55:26.431309: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cp
u_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your
machine and could speed up CPU computations.
2017-05-28 20:55:26.432157: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cp
u_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on you
r machine and could speed up CPU computations.
2017-05-28 20:55:26.432418: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cp
u_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on you
r machine and could speed up CPU computations.
2017-05-28 20:55:26.432880: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cp
u_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your m
achine and could speed up CPU computations.
2017-05-28 20:55:26.433170: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cp
u_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your
machine and could speed up CPU computations.
2017-05-28 20:55:26.433422: W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cp
u_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your m
achine and could speed up CPU computations.
>>> print(sess.run(hello))
b'Hello, TensorFlow!'
>>>
コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です