今回はWindowにより深層学習の環境構築を紹介しようと思います。
TensorflowとChainerに悩む人多いと思うが、今回両方の入れ方を紹介します。
私は環境構築のためにソフト何回も再インストールしたりして、相当時間かかってしまいましたが、これでみんなが楽になるといいね~
#事前準備
###python 3.5.2
https://www.python.org/downloads/release/python-352/
###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/
ここから
ウェブインストーラーをダウンロードしましょう。
ダウンロードしたインストーラーを開きましょう
わたしは英語版を入れたので、日本語の表示は分からないが、確かに「自動インストール」と「手動インストール」、選択肢二つがあって、ここで**「手動インストール」(下の方)**を選択してください。
これで
このような画面に入る。ここで、必ず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
ここは登録が必要となっていて、登録して、ログインしたら、
このような画面が出てくる。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
英語苦手な人もいると思いますが、ここで日本語に訳して貼ります。
# 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 )