LoginSignup
27
28

More than 5 years have passed since last update.

WindowによりTensorflowとChainerの環境構築with CUDA(GPUあり)

Last updated at Posted at 2017-07-07

今回はWindowにより深層学習の環境構築を紹介しようと思います。
TensorflowとChainerに悩む人多いと思うが、今回両方の入れ方を紹介します。

私は環境構築のためにソフト何回も再インストールしたりして、相当時間かかってしまいましたが、これでみんなが楽になるといいね~

事前準備

python 3.5.2

pip

https://bootstrap.pypa.io/get-pip.py
ここからpipをダウンロードし、またアドミンターミナルを開いて、さっきダウンロードしたget-pip.pyを探しやすいところに置いて、そのパスに入って

python get-pip.py

でpipをインストールしましょう

numpy

pip install numpy

matplotlib

pip install matplotlib

NvidiaのGPU一枚

ここのリストに書いてあるものしかCUDAに対応できない

CUDA-capable GPU
CUDA-Enabled Tesla Products
CUDA-Enabled Quadro Products
CUDA-Enabled NVS Products
CUDA-Enabled GeForce Products
CUDA-Enabled TEGRA/Jeston Products

詳細はこちらにご覧ください
https://developer.nvidia.com/cuda-gpus

Visual Studioをインストール

マイクロソフトが開発したIDE、多数のプラットフォームに使えることで便利。
今回使うのはVisual Studio 2015
注意:CUDA 8.0はVisual Studio2017にサポートされてない

まずhttps://www.visualstudio.com/ja/downloads/
ここから
image
ウェブインストーラーをダウンロードしましょう。
ダウンロードしたインストーラーを開きましょう
わたしは英語版を入れたので、日本語の表示は分からないが、確かに「自動インストール」と「手動インストール」、選択肢二つがあって、ここで「手動インストール」(下の方)を選択してください。
これで
image

このような画面に入る。ここで、必ずVisual C++をチェック入れてください
私はVSのIDEが使いやすそうで、Pythonのツールも入れた。
インストールが終わるまで待つ

CUDA+cuDNNをインストール

CUDA

まずhttps://developer.nvidia.com/cuda-downloads
ここからCUDAをダウンロードしましょう。
CUDAのインストールは特に注意事項ないが、自動インストールを選択していい。
ただし、さっきVisual Studio 2017をインストールしてしまった人はここで「Visual Studioが検出できません」を出てくるので、無視しないように、Visual Studio 2015を入れなおしましょう。そうしないと、悪夢に入ってしまう。T_T

インストールは結構時間かかるので待ちましょう......

最後は必ずNsight Studioの状態を大変そうに報告してくると思うが、そこも無視してよい。
全部終わったら、ターミナルで

nvcc

を入力し、コマンドノットファウンドが出てきてない限りインストールが成功した。

cuDNN

https://developer.nvidia.com/cudnn
ここは登録が必要となっていて、登録して、ログインしたら、
image
このような画面が出てくる。I Agreeにチェックを入れたら、選択肢がでてくる。
赤い枠をクリックすると、さらにリストがでてきて、その中のcuDNN v5.1 Library for Windows 7をダウンロードしましょう。
Windows 10を使っている方はWindows 10の方を
TensorflowはcuDNN 6.0をサポートしないです。
ジップファイルをダウンロードしたら、cuda->(bin,include,lib)の構造になっていて、C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\8.0に相応のフォルダーがあるので、それぞれを相応のパスにコピーすること。

これが終わったら、環境変数のPATHという変数にC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\binが入っているかを確認する。

Chainer+CuPyをインストール

順番は必ずCuPy -> Chainer
さっきpipをインストールしたので、ここで

CuPy

pip install cupy

ここまでのインストールを油断した方は、ここでバグ出てくると思うが、一つは

error: Unable to find vcvarsall.bat

これはVisual StudioにC++を入れていないせいだ。
あと

error: command 'cl.exe' failed: No such file or directory

これは環境変数のPATHにVisual studioのパスが入っていないせいだ。

Chainer

pip install chainer

でインストールする。

これでChainerのインストールが完了したが、ターミナルで

python -c "import chainer; print(chainer.cuda.available)"

を入力し、Trueを返されてきたら、chainerはうまくGPUとつないでいること。

Tensorflow

二つの方法もあるが、ここでpipでインストールする方法を紹介します。

pip install --upgrade tensorflow-gpu

あるいは

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

これでインストールしたら、このコードで正しくインストールしたかどうかを確かめよう
https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c

英語苦手な人もいると思いますが、ここで日本語に訳して貼ります。

tf_selfcheck_jp.py
# Copyright 2015 The TensorFlow Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ==============================================================================
"""A script for testing that TensorFlow is installed correctly on Windows.
The script will attempt to verify your TensorFlow installation, and print
suggestions for how to fix your installation.
"""

import ctypes
import imp
import sys

def main():
  try:
    import tensorflow as tf
    print("TensorFlowインストールされています")
    if tf.test.is_built_with_cuda():
      print("このバージョンはGPUサポートを含めています\n")
      message = input("'gpu'を入力してGPUの状況を確認します。\n他の入力でチェックが終了いたします。\n\ninput:")
      if message == "gpu":
        from tensorflow.python.client import device_lib
        print(device_lib.list_local_devices())
    else:
      print("このバージョンはGPUサポートを含めていません")
    sys.exit(0)
  except ImportError:
    print("ERROR: Failed to import the TensorFlow module.")

  candidate_explanation = False

  python_version = sys.version_info.major, sys.version_info.minor
  print("\n- Python version is %d.%d." % python_version)
  if python_version != (3, 5):
    candidate_explanation = True
    print("TensorFlow for Windowsを使うのは "
          "Python version 3.5.が必要となります")

  try:
    _, pathname, _ = imp.find_module("tensorflow")
    print("\n- TensorFlow is installed at: %s" % pathname)
  except ImportError:
    candidate_explanation = False
    print("""
- Tensorflowというモジュールがない。`pip install tensorflow`.でダウンロードしましょう""")

  try:
    msvcp140 = ctypes.WinDLL("msvcp140.dll")
  except OSError:
    candidate_explanation = True
    print("""
- 'msvcp140.dll'をロードできませんでした。 このDLLを入れるためには、Microsoft Visual
  C++ 2015 Redistributable Update 3 をインストールすることが必要だ。
  URL:https://www.microsoft.com/en-us/download/details.aspx?id=53587""")

  try:
    cudart64_80 = ctypes.WinDLL("cudart64_80.dll")
  except OSError:
    candidate_explanation = True
    print("""
- 'cudart64_80.dll'をロードできませんでした。 このDLLを入れるためには、CUDA 8.0 をインストー
  ルすることが必要だ。
  URL: https://developer.nvidia.com/cuda-toolkit""")


  try:
    nvcuda = ctypes.WinDLL("nvcuda.dll")
  except OSError:
    candidate_explanation = True
    print("""
- 'nvcuda.dll'をロードできませんでした。 このDLLは基本'C:\Windows\System32'にあるはずが
  もしなければ、あなたのGPUはCUDA使えるか、ドライバーが正しく入っているかを、もう一度確かめてください。""")

  try:
    cudnn = ctypes.WinDLL("cudnn64_5.dll")
  except OSError:
    candidate_explanation = True
    print("""
- 'cudnn64_5.dll'をロードできませんでした。  このDLLを入れるためには、cuDNN 5.1 をインストー
  ルすることが必要だ。cuDNNはデフォルトでCUDAと一緒にインストールされるものではないのです。
  もしすでにcuDNN 6.0を入れた場合、'cudnn64_6.dll'を削除して、他のファイルとも、貼りなおしましょう
  URL:https://developer.nvidia.com/cudnn""")

  if not candidate_explanation:
    print("""
- Tensorflowに必要となるDLLは揃えています。
  TensorFlow GitHub page: https://github.com/tensorflow/tensorflow/issues""")

  sys.exit(-1)

if __name__ == "__main__":
  main()

日本語版はインストールが成功したら最後に問われるところを追加したと思いますが、そこでgpuを入力し、
また、英語版を実行した方は、ターミナルで

python -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"

を実行して、最後に

name: GeForce GTX 980M
major: 5 minor: 2 memoryClockRate (GHz) 1.1265
pciBusID 0000:01:00.0
Total memory: 4.00GiB
Free memory: 3.83GiB
2017-07-07 17:18:53.446905: I c:\tf_jenkins\home\workspace\release-win\m\windows
-gpu\py\35\tensorflow\core\common_runtime\gpu\gpu_device.cc:961] DMA: 0
2017-07-07 17:18:53.448085: I c:\tf_jenkins\home\workspace\release-win\m\windows
-gpu\py\35\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 0:   Y
2017-07-07 17:18:53.449183: I c:\tf_jenkins\home\workspace\release-win\m\windows
-gpu\py\35\tensorflow\core\common_runtime\gpu\gpu_device.cc:1030] Creating Tenso
rFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 980M, pci bus id: 0000:01
:00.0)
[name: "/cpu:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 5743970950694766450
, name: "/gpu:0"
device_type: "GPU"
memory_limit: 3798282240
locality {
  bus_id: 1
}
incarnation: 5780768353725891859
physical_device_desc: "device: 0, name: GeForce GTX 980M, pci bus id: 0000:01:00
.0"
]

一番下のところでこのような結果が出てきたら、Tensorflowのインストールはこれで完了しました。

参考リンク

総合

Linuxを中心とした環境構築(これは見れないと思いますが)
Windows10にcuDNN+chainerをインストール
Windows上にChainer v1.5+CUDA+cuDNNを一番簡単に入れれる方法

Visual Studio

vcvarsall.bat needed for python to compile missing from visual studio 2015 ( v 14)
Visual studio doesn't have cl.exe [closed]
Would cuDNN v6.0 work with TensorFlow currently?

CUDA

CUDA Installation Guide for Microsoft Windows
how to setup cuDnn with theano on Windows 7 64 bit

Chainer

python pip on Windows - command 'cl.exe' failed

Tensorflow

Installing TensorFlow on Windows
Error importing tensorflow on windows 10 ( Tensorflow 0.12.0 RC0, python3.5 )

27
28
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
28