競プロ雑記帳

windows10 で python 3.7 + tensorflow-gpu 2.1 の導入

前回の記事では Anaconda で導入しましたが、Anaconda を使っていると pip と conda の両方でうまく管理をしなくてはいけなくて結構な頻度で環境が壊れてしまうことがありました。なので今回は、vanilla python で導入したいと思います。
また、NVIDIA ドライバのインストールについては説明しません。事前にインストールしておいてください。

関連するもののアンインストール

CUDAやCuDNN、pythonのアンインストールをして、環境変数も関連するものは削除します。

python3.7のインストール

tensorflow 2.1 では今のところpython 3.7までにしか対応していないので今回は3.7.6をインストールします。
下記のサイトで Windows x86-64 executable installer をダウンロード、それを実行しインストールします。
インストールするときに Add python 3.7 to Path をチェックします。
インストールが終わると Disable path length limit とでるので特殊な事情がない限りはクリックをします。
www.python.org

CUDA10.1のインストール

下記のサイトに行き、 windowsx86_64 → 10 → exe (local) と選択し、CUDA 10.1 update2 をダウンロードします。
ダウンロードが終わったら実行し、カスタムインストールを選択します。
特に事情がなければ何も変えずにそのまま次へ進み、インストールを終わらせます。

developer.nvidia.com

CuDNN7.6のインストール

下記サイトに行き、CuDNN Download を選択し、ログインをして、Download CuDNN ~~~~ ,for CUDA 10.1(CuDNN 7.6と書いたが、CUDA 10.1に対応していればよい) を選択し、ダウンロードします。そして解凍し、cuda フォルダの中身(bin, include, lib, NVIDIA_SLA_cuDNN_Support.txt) をCUDA 10.1をインストールしたフォルダ(変更していなければ、 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 ) にコピーする。
その後、システム環境変数に、
変数名: CUDNN_PATH
変数値: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
と設定する。
developer.nvidia.com

その他の設定

コマンドプロンプト等で、
pip install -U pip
pip install -U setuptools
をする。

tensorflow-gpu のインストール

コマンドプロンプト等から
pip install -U tensorflow-gpu tensorflow_datasets
を実行する。バージョンを指定してインストールした方が良いかもしれない( -U オプションは外す)。
インストールが終わったら py list をして、インストールされたものの確認をしてください。
その後、 python で下記のコードを実行します。

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

GPU が使われていることが確認できれば大丈夫です。
エラーが出る場合は不必要なタスクを終了してから実行するとできるかもしれません。もしくは再起動をすると良いかもしれません。
それでもできなければ、どこかで間違えたか、ファイルが壊れているなどが考えられます。