本記事の内容
Windows10マシンにTensorflow2.1.0 + CUDA10.1 + cuDNN 7.6.5 をインストールする手順をまとめます。
以前のバージョンとの違い
- CUDAインストーラーがPATHを通してくれるようになった (環境変数を自分で変更しなくてよくなった)
- Visual Studio 2017の C++ compilerでは動かなくなった (VS2019再配布可能パッケージを入れればOK)
- CPU版tensorflowもC++ compiler必須になった (VS2019再配布可能パッケージを入れればOK)
- ロングネームを有効にしなきゃいけなくなった (必須かどうか未確認)
導入環境
CPU: Intel core-i9 9900K
GPU: RTX2080Ti
OS: Windows10 Pro
入れるもの
Visual Studio 2015~2019 VC++ 再配布可能パッケージ
tensorflow-gpu 2.1.0
CUDA 10.1
cuDNN 7.6.5 for CUDA10.1
Anaconda 2019.03 for Windows 64 bit
CUDA, cuDNN, tensorflowのバージョン選定
今回使うGPUはturingアーキテクチャのRTX2080TiですのでCUDAは10.0以降であれば使えます。
https://en.wikipedia.org/wiki/CUDA
pipでインストールできるtensorflow-gpuビルドは特定のバージョンのCUDA用にビルドされたものですので、例えばwindows用にビルドされたtensorflow-gpu 2.1.0はCUDA10.1でないとそのままでは動きません。自分でビルドすれば別バージョンのCUDAに対応できますが、結構ハードル高いので素直に対応するバージョンのものを入れた方が無難だと思います。tensorflow 2.1.0のリリースノートにCUDA10.1, cuDNN7.6でビルドしていると書かれていますので、今回はCUDA10.1とcuDNN 7.6.5 for CUDA10.1を使用しました。
https://github.com/tensorflow/tensorflow/releases
1. Visual Studio 2015~2019 再配布可能パッケージをインストールする
MicrosoftのサイトからVisual Studio 2015~2019 C++ compiler 再配布可能パッケージをダウンロードしてインストールします
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads
2. CUDA, cuDNNをインストールする
NVIDIAの公式サイトからダウンロードしてインストールします。僕の環境だとWin10, x86_64になります。
https://developer.nvidia.com/cuda-downloads
インストールを実行します。グラフィックドライバーも一緒に入れてくれます。
以前はここでシステムの環境変数でPATHを通してましたが要らなくなったようです。
nvccコマンドを呼んでみます。
> nvcc -V
これでバージョン情報が表示されたら正常です。
3. cuDNNをインストールする
公式サイトからダウンロードします。
今回はcuDNN v7.6.5 for CUDA10.1のWindows10用のものを使用しました。
https://developer.nvidia.com/rdp/cudnn-download
ダウンロードしてきたzipファイル内のcudaフォルダ内にあるbin, include, extra を「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1」にコピーします。
4. Anacondaでpython環境をインストール
公式サイトからWindows用python3系64bit版インストーラーをダウンロードしてインストールします。
https://www.anaconda.com/distribution/
5. conda環境を作ってpackageをインストールする
Anaconda Promptを起動してconda環境をつくります。tensorflow2からpython3.7が使えるようになったので今回は3.7でやってみます。以下では「tf」という名前でpython 3.7のconda環境を作成しています。
(base) > conda create -n tf python=3.7
conda環境をつくったら有効にしてtensorflow-gpuをインストールします。他のpackageをインストールした後にtensorflow-gpuをインストールするとtensorflow-gpuのimportに失敗するようになる事があるので最初にインストールして動作を確認するのがオススメです。
(base) > conda activate tf
(tf) > pip install tensorflow-gpu==2.1.0
(tf) > python
>>> import tensorflow as tf
>>> tf.config.list_physical_devices('GPU')
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
上記でimportが失敗する場合、C++コンパイラが入ってないかもしれません。
また、tf.config.list_physical_devices('GPU')で空のリスト[]が返ってきた場合、GPUが認識されていません。
6. 機械学習系パッケージをインストールする
(tf) $ pip install optuna tensorflow-addons numpy pandas xlrd openpyxl xlsxwriter sklearn scipy catboost xgboost lightgbm matplotlib japanize-matplotlib seaborn boruta pydot3 graphviz ipywidgets jupyter tqdm pyarrow psutil
あと、僕はいつもこの辺も入れてます
(tf) $ pip install pillow opencv-python selenium jaconv pykakasi colour-science Imath OpenEXR
えんじょい