2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TensorFlowでGPUを使えるようにする(Windows編)

Last updated at Posted at 2021-09-14

CPUだと遅すぎ

画像解析系のモデルはCPUでも動作しますが、処理にかなり時間がかかります。
以下TensoFlowでGPUを使えるようにするまでの手順です。

環境

Windows10での動作確認です。他のOSは下のリンクから

使えるGPU

主要なメーカとしてNvdiaとAMDがありますが、今のところNvdia(Tesla/Geforce/Quadro/etc...)だけのようです。
AMDとかSoCとかはダメみたいですね。使えたという記事を見たことないです。
自作のコンパイラでSocのグラフィックボードを使えるようにする猛者はいるらしいです。

このリンクからCudaが使えるGPUの一覧が見れます。

Compute Capability

Compute Capabilityという性能を表す指標があります。
自分のはGeForceGTX 750Ti5.0でした。2014頃のハイエンドですがもうミドルに落ちてますね。

Tensorflowのインストール

昔のバージョン(<=1.15)ではTensoflow-gpuというGPU用の別パッケージがありました。最近のコードではあまりみないですね

tensorflow最新版インストール
pip install tensorflow==2.6.0

依存関係インストール

GPUを差しただけではダメで、NVdiaのGPUドライバーCudaCuDNNをインストールする必要があります

NVdiaのGPUドライバー

Cuda Toolkit

インストーラーになっているので指示に従って進めるだけです。自分は推奨インストールにしました。

関連の依存があるようでVisualStdio C++がなければインストールするよう警告がでることがあります

cuDNN

こっちは畳み込みネットワークとかMaxPoolingとかDNNを使うために必要らしいです。面倒ですがDLするためにデベロッパー登録する必要があります。

ダウンロードしたzipを展開して適当な場所に配置してください

cuDNNのパスは手動で

パスはインストーラーが勝手に登録してくれるという情報がありましたが、自動で設定してくれるのはCUDA_PATHCUDA_PATH_V[バージョン]だけです。

CuDNNは↓のどちらか

  1. CUDNN_PATHを手動で設定
  2. CUDA_PATHと同じフォルダにbin,lib,includeの中身をすべてコピー(これがベストかもしれません。)

検証

リストの中が空でなければOK
import tensorflow as tf
tf.config.list_physical_devices('GPU') 
>>> [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

エラーと対処

Could not find the DLL(s) 'msvcp140.dll or msvcp140_1.dll'
ImportError: Could not find the DLL(s) 'msvcp140.dll or msvcp140_1.dll'. TensorFlow requires that these DLLs be installed in a directory that is named in your %PATH% environment variable. You may install these DLLs by downloading "Microsoft C++ Redistributable for Visual Studio 2015, 2017 and 2019" for your platform from this URL: https://support.microsoft.com/help/2977003/the-latest-supported-visual-c-downloads

ここからDLLをインストール

cudart64_110.dll not found
W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found

Cuda ToolKitを入れる

cudnn64_8.dll not found
W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'cudnn64_8.dll'; dlerror: cudnn64_8.dll not found

CuDNNを入れる

学習済みモデルで試してみました

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?