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

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)

関連記事

【PyTorch】畳込みニューラルネットワークを構築する方法【CNN】

今回は、PyTorch を使って畳込みニューラルネットワーク(CNN)を構築する方法について紹介しま

記事を読む

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

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

記事を読む

【Weka】アソシエーション・ルール(association rule)【機械学習】

フリーの機械学習ツール Weka でアソシエーション・ルール(association rule)を使

記事を読む

【Weka】ARFF 形式から CSV 形式に簡単に変換する方法。

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

記事を読む

【機械学習】パーセプトロン(Perceptron)について。

パーセプトロンは、教師あり学習の中でも、入出力モデルベース(eager learning:働き者の学

記事を読む

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

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

記事を読む

【PyTorch】GPUのメモリ不足でエラーになったときの対処方法。

PyTorch で深層学習していて、 GPUのメモリ不足でエラーが出てしまったので、対処方法のメモで

記事を読む

【Weka】欠損データを自動的に補完するフィルタを使ってみた。

機械学習で用いるデータについてです。データは完璧なことに越したことはないが、通常は、ある属性の値が入

記事を読む

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

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

記事を読む

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

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

記事を読む

無料動画編集ソフト AviUtl で mp4 形式の動画を読み込み・出力する方法【Windows】

今回は、無料動画編集ソフト AviUtl で mp4 形式の動画を読み

【Cubase】イヤホンから音がでないときの対処方法。

Cubase でイヤホンから音がでなくなったときの対処方法のメモです。

【Cubase】特定のトラックを無効にする方法。

今回は、Cubaseで特定のトラックのみを無効にする方法について紹介し

【転移学習】学習済みVGG16 による転移学習を行う方法【PyTorch】

今回は、PyTorch を使って、学習済みのモデル VGG16 を用い

【PyTorch】畳込みニューラルネットワークを構築する方法【CNN】

今回は、PyTorch を使って畳込みニューラルネットワーク(CNN)

→もっと見る

PAGE TOP ↑