【TensorFlow】GPUを認識しない時の対処方法【Python】

TensorFlow で GPU を認識させようとしたときにハマってしまったので、その対処方法のメモです。

バージョンを揃えないと GPU が認識しないなど、様々なページがあって、色々と参考にしながらインストールしたのですが、盛大にハマってしまいました。。。

構築環境について

今回の環境は以下のとおりです。

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版をアンインストールしておきます。

pip で GPU版をバージョンを指定してインストールします。

以下のようなエラーが出た場合は、「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」オプションを付けます。

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」が追加されていることを確認します。

コマンドプロンプトで、

とし、PATHが通っていることを確認します。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\nvcc.exe

※一応以下のPATHも通しておきます。

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」上で、以下を実行します。

ModuleNotFoundError: No module named ‘absl’ エラーの対処方法

ImportError: cannot import name ‘descriptor’ from ‘google.protobuf’ (unknown location) エラーの対処方法

ModuleNotFoundError: No module named ‘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】ARFF 形式から CSV 形式に簡単に変換する方法。

フリーのデータマイニングツールである WEKA では、ARFF 形式と CSV 形式のデータを読み込

記事を読む

【機械学習】モンテカルロ法(Monte Carlo method)について。

モンテカルロ法(Monte Carlo method)とは、シュミレーションや数値計算を乱数を用いて

記事を読む

【機械学習】 scikit-learn で精度・再現率・F値を算出する方法【Python】

今回は、2クラス分類で Python の scikit-learn を使った評価指標である、精度(P

記事を読む

【機械学習・手法比較】決定木とナイーブベイズを比較してみた。

同じデータを使って、教師有り機械学習手法の 決定木(Decision Tree)とナイーブベイズ(N

記事を読む

【Weka】CSVファイルを読み込んで決定木を実行。

フリーの機械学習ソフト Weka を使って、CSVファイルを読み込んで決定木(Decision Tr

記事を読む

【機械学習】 scikit-learn で不正解データを抽出する方法【Python】

Python の scikit-learn ライブラリを使って機械学習でテストデータを識別(2クラス

記事を読む

機械学習の手法のまとめ。

機械学習は、「与えられた入出力事例をモデル化する行為」のことで、ディープラーニングなどで注目を集めて

記事を読む

【深層学習】 TensorFlow と Keras をインストールする【Python】

今回は、Google Colaboratory 上で、深層学習(DeepLearning)フレームワ

記事を読む

【探索】縦型・横型・反復深化法の探索手法の比較。

探索とは、チェスや将棋や囲碁などのゲームをコンピュータがプレイするときに、どの手を指すかを決定するの

記事を読む

【Weka】フリーの機械学習ソフトをインストールする方法。

Weka は、GUIで使えるフリーの機械学習ソフトです。 https://ja.wikiped

記事を読む

【TensorFlow】GPUを認識しない時の対処方法【Python】

TensorFlow で GPU を認識させようとしたときにハマってし

【耳コピ】音楽ファイルを楽器ごとに分離する方法【Spleeter:フリー】

今回は、mp3 などの音楽ファイルをボーカル、ベース、ドラムなどの楽器

【Chainer】手書き数字認識をしてみた【Deep Learning】

Chainerを用いて、ニューラルネットワークを構築し、手書き数字認識

【Spyder】引数のあるスクリプトを実行する方法。

Python の統合開発環境(IDE)である Spyder では、簡単

【Anaconda】Prompt 上で Git コマンドを実行する方法。

Anaconda のコマンドプロンプト(Anaconda Prompt

→もっと見る

PAGE TOP ↑