View on GitHub

Samuraishockdo_pages

github pages

Windows10 のAnaconda環境でTensorflowのGPU版を使う方法

Windows10 のAnaconda環境で TensorflowのGPU版。
環境構築に何回か手間どりました、メモがてら共有させていただきます。
Anaconda環境はじめ、もろもろの具体的なインストール方法やPATHの設定など細かいところは検索すると解決すると思いますので、割愛させていただきました。
インストールの順番、ソフトウェアなどの正しいバージョンの組み合わせを知る方法の参考としてご覧ください。

TensorflowのGPU版ハードウェア環境1

CUDA TOOL KIT をインストール

ダウンロード、インストールします。 cuDNN 7.6 をダウンロード、配置、環境変数にpath設定 ダウンロード、解凍、それぞれをCUDA TOLLKITのディレクトリにコピーします。
.dllファイルのPATHを設定します。

Anaconda環境の新しいものを作成

Python バージョン  3.7で新規環境を作成
Anaconda環境にTensorflowのGPU版をインストール
tensorflow-2.1.0をバージョン指定でインストールします。
conda コマンドでインストールします。
まず、

conda search tensorflow

を入力します。すると、いろんなバージョンが出力されます

Loading channels: ...working... done
# Name                       Version           Build  Channel             
tensorflow                     1.7.0               0  pkgs/main           
tensorflow                     1.7.1               0  pkgs/main           
tensorflow                     1.8.0               0  pkgs/main           
tensorflow                     1.9.0 eigen_py35hb0e21f4_1  pkgs/main           
tensorflow                     1.9.0 eigen_py36h0b764b7_1  pkgs/main           
tensorflow                     1.9.0 gpu_py35h0075c17_1  pkgs/main           
tensorflow                     1.9.0 gpu_py36hfdee9c2_1  pkgs/main           
tensorflow                    1.10.0 eigen_py35h38c8211_0  pkgs/main           
tensorflow                    1.10.0 eigen_py36h849fbd8_0  pkgs/main           
tensorflow                    1.10.0 gpu_py35ha5d5ef7_0  pkgs/main           
tensorflow                    1.10.0 gpu_py36h3514669_0  pkgs/main           
tensorflow                    1.10.0 mkl_py35h4a0f5c2_0  pkgs/main           
tensorflow                    1.10.0 mkl_py36hb361250_0  pkgs/main           
tensorflow                    1.11.0 eigen_py36h346fd36_0  pkgs/main           
tensorflow                    1.11.0 gpu_py36h5dc63e2_0  pkgs/main           
tensorflow                    1.11.0 mkl_py36h41bbc20_0  pkgs/main           
tensorflow                    1.12.0 eigen_py36h67ac661_0  pkgs/main           
tensorflow                    1.12.0 gpu_py36ha5f9131_0  pkgs/main           
tensorflow                    1.12.0 mkl_py36h4f00353_0  pkgs/main           
tensorflow                    1.13.1 eigen_py36hf0a88a9_0  pkgs/main           
tensorflow                    1.13.1 eigen_py37h2a8d240_0  pkgs/main           
tensorflow                    1.13.1 gpu_py36h1635174_0  pkgs/main           
tensorflow                    1.13.1 gpu_py36h9006a92_0  pkgs/main           
tensorflow                    1.13.1 gpu_py37h83e5d6a_0  pkgs/main           
tensorflow                    1.13.1 gpu_py37hbc1a9d5_0  pkgs/main           
tensorflow                    1.13.1 mkl_py36hd212fbe_0  pkgs/main           
tensorflow                    1.13.1 mkl_py37h9463c59_0  pkgs/main           
tensorflow                    1.14.0 eigen_py36hf4fd08c_0  pkgs/main           
tensorflow                    1.14.0 eigen_py37hcf3f253_0  pkgs/main           
tensorflow                    1.14.0 gpu_py36h305fd99_0  pkgs/main           
tensorflow                    1.14.0 gpu_py36heb2afb7_0  pkgs/main           
tensorflow                    1.14.0 gpu_py37h2fabf85_0  pkgs/main           
tensorflow                    1.14.0 gpu_py37h5512b17_0  pkgs/main           
tensorflow                    1.14.0 mkl_py36hb88db5b_0  pkgs/main           
tensorflow                    1.14.0 mkl_py37h7908ca0_0  pkgs/main           
tensorflow                    1.15.0 eigen_py36h932cce6_0  pkgs/main           
tensorflow                    1.15.0 eigen_py37h9f89a44_0  pkgs/main           
tensorflow                    1.15.0 gpu_py36h2b26d6b_0  pkgs/main           
tensorflow                    1.15.0 gpu_py37hc3743a6_0  pkgs/main           
tensorflow                    1.15.0 mkl_py36h997801b_0  pkgs/main           
tensorflow                    1.15.0 mkl_py37h3789bd0_0  pkgs/main           
tensorflow                     2.0.0 eigen_py36h457aea3_0  pkgs/main           
tensorflow                     2.0.0 eigen_py37hbfc5123_0  pkgs/main           
tensorflow                     2.0.0 gpu_py36hfdd5754_0  pkgs/main           
tensorflow                     2.0.0 gpu_py37h57d29ca_0  pkgs/main           
tensorflow                     2.0.0 mkl_py36h781710d_0  pkgs/main           
tensorflow                     2.0.0 mkl_py37he1bbcac_0  pkgs/main           
tensorflow                     2.1.0 eigen_py36hdbbabfe_0  pkgs/main           
tensorflow                     2.1.0 eigen_py37hd727fc0_0  pkgs/main           
tensorflow                     2.1.0 gpu_py36h3346743_0  pkgs/main           
tensorflow                     2.1.0 gpu_py37h7db9008_0  pkgs/main           
tensorflow                     2.1.0 mkl_py36h31ad7c1_0  pkgs/main           
tensorflow                     2.1.0 mkl_py37ha977152_0  pkgs/main           
tensorflow                     2.3.0 mkl_py37h04bc1aa_0  pkgs/main           
tensorflow                     2.3.0 mkl_py37h10aaca4_0  pkgs/main           
tensorflow                     2.3.0 mkl_py37h3bad0a6_0  pkgs/main           
tensorflow                     2.3.0 mkl_py37h48e11e3_0  pkgs/main           
tensorflow                     2.3.0 mkl_py37h856240d_0  pkgs/main           
tensorflow                     2.3.0 mkl_py37h936c3e2_0  pkgs/main           
tensorflow                     2.3.0 mkl_py37h952ae9f_0  pkgs/main           
tensorflow                     2.3.0 mkl_py37he40ee82_0  pkgs/main           
tensorflow                     2.3.0 mkl_py37he70e3f7_0  pkgs/main           
tensorflow                     2.3.0 mkl_py38h1fcfbd6_0  pkgs/main           
tensorflow                     2.3.0 mkl_py38h37f7ee5_0  pkgs/main           
tensorflow                     2.3.0 mkl_py38h3c6dea5_0  pkgs/main           
tensorflow                     2.3.0 mkl_py38h46e32b0_0  pkgs/main           
tensorflow                     2.3.0 mkl_py38h637f690_0  pkgs/main           
tensorflow                     2.3.0 mkl_py38h8557ec7_0  pkgs/main           
tensorflow                     2.3.0 mkl_py38h8c0d9a2_0  pkgs/main           
tensorflow                     2.3.0 mkl_py38ha39cb68_0  pkgs/main           
tensorflow                     2.3.0 mkl_py38hd19cc29_0  pkgs/main           

2.1.0をインストールします。 tensorflow 2.1.0 gpu_py37h7db9008_0 pkgs/main という行があります   conda install tensorflow=2.1.0=gpu_py37h7db9008_0   というコマンドを入力してインストールします。 Kerasなどをインストール

conda install keras
conda install matplotlib
conda install scikit-learn
conda install pandas

などをインストールします。 ###GPUが認識されているか確認

Jupyter Notebook をインストールします。 新しいnoteを作ります

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

を入力、実行します

[name: "/device:CPU:0"
 device_type: "CPU"
 memory_limit: 268435456
 locality {
 }
 incarnation: 6994338167513753911,
 name: "/device:GPU:0"
 device_type: "GPU"
 memory_limit: 4990763008
 locality {
   bus_id: 1
   links {
   }
 }
 incarnation: 12190096428376131523
 physical_device_desc: "device: 0, name: GeForce GTX 1660 SUPER, pci bus id: 0000:01:00.0, compute capability: 7.5"]

のような情報が出力されます。この中にGPUというもブロックがあればGPUを認識しています。

感想

最初、Anaconda環境を作成後、conda install Tensorflowでインストールしたあとに、CUDA周りをインストールしたのですが、バージョンが合わずGPUを確認できませんでした。

GPUドライバ最新インストール

  1. GPUバージョン確認
  2. CUDA, cuDNN, tensorflow GPUの組み合わせを確認・メモ https://www.tensorflow.org/install/source
  3. Visual studio 2019のビルドツールインストール
  4. CUDA toolkit インストール
  5. cuDNN インストール
  6. Anaconda環境 Pythonのバージョン合わせて作成
  7. conda search tensorflow してからのバージョン指定インストール
    が近道かなと思います。
    cuDNNのインストールや、Visual studio 2019のビルドツールのインストール部分などの具体的な部分は検索するとたくさん情報があるので、割愛させていただきました。