【TensorFlow】GPUを認識しない時の対処方法【Python】
TensorFlow で GPU を認識させようとしたときにハマってしまったので、その対処方法のメモです。
バージョンを揃えないと GPU が認識しないなど、様々なページがあって、色々と参考にしながらインストールしたのですが、盛大にハマってしまいました。。。
Contents
構築環境について
今回の環境は以下のとおりです。
OS:Window 10
Python:3.8.5
GPU:NVIDIA GeForce RTX 2060
メモリー:16GB
バージョン対応確認
インストールしていく前の事前準備として、以下のページでバージョン対応を確認しておく必要があります。
https://www.tensorflow.org/install/source_windows#configure_the_build
それぞれのバージョンが違うと動かないようです。
私は、tensorflow-gpu が「2.0.3」に対応するものを入れていきました。
TensorFlow(GPU版)のインストール
まず、TensorFlow の GPU版をインストールします。
ここで注意しないといけないのが、「conda」コマンドか「pip」コマンドどちらでインストールするかです。
結論からいうと、「pip」でインストールしないといけないっぽいです。
「conda」を使うと GPU に対応しなくなってしまうみたいです。。
参考記事
https://qiita.com/S_Sekino/items/de4c80916db806c4b9b5
TensorFlow には CPU版とGPU版があり、GPU版を使う場合は、CPU版をアンインストールしておきます。
1 2 |
conda uninstall tensorflow pip uninstall tensorflow |
pip で GPU版をバージョンを指定してインストールします。
1 |
pip install tensorflow-gpu-2.3.0 |
以下のようなエラーが出た場合は、「METADATA」ファイルを作成します(空のファイル)。
ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory:
‘c:\\users\\XXXX\\anaconda3\\lib\\site-packages\\google_pasta-0.2.0.dist-info\\METADATA‘
アクセスエラーが出た場合、「–user」オプションを付けます。
1 |
pip install tensorflow-gpu==2.3.0 --user |
Windows Visual Studio C++ のインストール
Windows Visual Studio C++ は、CUDA をインストールして使うために必要なものです。
CUDA は、NVIDIA が開発している、GPGPU のアーキテクチャ・ライブラリのことです。
Visual Studio 2019 をインストール します。
https://docs.microsoft.com/ja-jp/visualstudio/install/install-visual-studio?view=vs-2019
インストール時に、「C++ ワークロードを使用したデスクトップ開発」を選択します。
インストールには時間がかかり、空き容量が8GB程度必要となります。。
NVIDIA Driver のインストール
PCで使用している GPU のバージョンに対応したドライバーを以下のページからダウンロードする必要があります。
https://www.nvidia.co.jp/Download/index.aspx?lang=jp
GPUバージョン確認方法は、デスクトップで右クリック ⇒ NVIDIAコントロールパネル 画面を開き、「ヘルプ」⇒「システム情報」。
一旦、NVIDIA XXXX となっているプログラムは全てアンインストールしてからインストールします。
CUDA Toolkit Archive(CUDA 10.1)のインストール
以下のページから、CUDA Toolkit Archive(CUDA 10.1)をダウンロードします。
「CUDA Toolkit 10.1 update2 (Aug 2019), Versioned Online Documentation」を選択しました。
2.5GBあるのでネット環境が良くないと厳しいです。
環境変数にPATHが通っている(追加されている)ことを確認します。
「システムの詳細設定」->「詳細設定」->「環境変数」に、「CUDA_PATH」「CUDA_PATH_V10_1」が追加されていることを確認します。
コマンドプロンプトで、
1 |
where nvcc |
とし、PATHが通っていることを確認します。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\nvcc.exe
※一応以下のPATHも通しておきます。
1 2 3 |
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\CUPTI\lib64 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include |
cuDNN(SDK 7.6)のインストール
cuDNN とは、NVIDIAが提供しているDeep Neural Network(DNN)開発用のライブラリです。
深層学習で使われる基本的な機能が提供されています。
https://developer.nvidia.com/cudnn
「Download cuDNN v7.6.5 (November 5th, 2019), for CUDA 10.1」を選択しました。
ZIP ファイルを展開し、「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1」以下に、
bin, include, libと3つのフォルダがあるので、各フォルダのファイルをコピーします。
環境変数を手動で設定します。
変数名:
CUDNN_PATH
変数値:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
システム環境変数 Path に以下を追加します。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
コマンドプロンプトで、「where cudnn64_7.dll」を実行し、PATHが通っていることを確認します。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\cudnn64_7.dll
GPUを認識することを確認
「Spyder」上で、以下を実行します。
1 2 |
from tensorflow.python.client import device_lib device_lib.list_local_devices() |
● ModuleNotFoundError: No module named ‘absl’ エラーの対処方法
1 2 |
pip uninstall absl-py pip install absl-py |
● ImportError: cannot import name ‘descriptor’ from ‘google.protobuf’ (unknown location) エラーの対処方法
1 2 3 |
pip uninstall tensorflow-gpu-2.3.0 pip uninstall protobuf pip install tensorflow-gpu-2.3.0 |
● ModuleNotFoundError: No module named ‘termcolor’ エラーの対処方法
1 |
pip install termcolor |
以下のような出力がされ、ようやくGPUが認識されました。
Created TensorFlow device (/device:GPU:0 with 4722 MB memory) -> physical GPU (device: 0, name: NVIDIA GeForce RTX 2060, pci bus id: 0000:01:00.0, compute capability: 7.5)
関連記事
-
【Weka】CSVファイルを読み込んで決定木を実行。
フリーの機械学習ソフト Weka を使って、CSVファイルを読み込んで決定木(Decision Tr
-
【探索】縦型・横型・反復深化法の探索手法の比較。
探索とは、チェスや将棋や囲碁などのゲームをコンピュータがプレイするときに、どの手を指すかを決定するの
-
【機械学習】決定木(decision tree)について。
教師あり学習の一つである決定木(desicion tree)について勉強したことを書いていきます。
-
【Weka】フリーの機械学習ソフトをインストールする方法。
Weka は、GUIで使えるフリーの機械学習ソフトです。 https://ja.wikiped
-
【画像認識】 Google画像検索結果を取得する方法 【google image download】
今回は、深層学習(DeepLearning)で画像認識をするための画像データの収集を、Google画
-
【PyTorch】GPUのメモリ不足でエラーになったときの対処方法。
PyTorch で深層学習していて、 GPUのメモリ不足でエラーが出てしまったので、対処方法のメモで
-
【Weka】アソシエーション・ルール(association rule)【機械学習】
フリーの機械学習ツール Weka でアソシエーション・ルール(association rule)を使
-
【PyTorch】ニューラルネットワークを構築する方法【NN】
今回は、PyTorch を使って、ニューラルネットワーク(NN)を構築したときのメモです。 フ
-
【機械学習】モンテカルロ法(Monte Carlo method)について。
モンテカルロ法(Monte Carlo method)とは、シュミレーションや数値計算を乱数を用いて
-
【Weka】ARFF 形式から CSV 形式に簡単に変換する方法。
フリーのデータマイニングツールである WEKA では、ARFF 形式と CSV 形式のデータを読み込