#環境概要
念願の GPU を手に入れたぞ!ということで環境セットアップ
##OS+GPU
NVIDIA RTX 3080
Windows10
##Software
Tensorflow 2.6
Keras 2.6
Anaconda
Python3.8
CUDA Toolkit 11.2
cuDNN 11.0
#参考にした web page
- 本家 Tensorflow for GPU のインストール手順
- 古いバージョンの CUDA @ NVIDIA
- cuDNN SDK
- 参考までに @ NVIDIA
- Anaconda と pip の多重インストール問題
- インストール前後の注意事項や確認方法
#インストール手順
##Python 関連
###Python3.8 環境の準備
-
Anaconda Navigator をインストール
-
python3.8 の環境を Create(ここでは ML38 を作成)
-
Python 3.8 の環境に切り替えておく
(base)XXX > activate ML38 # Create した環境に切り替え
(ML38)XXX > # 切り替わり完了
###TensorFlow for GPU と Keras のインストール
- Tensorflow for GPU や Keras を Anaconda Prompt でインストール
Anaconda でインストールしようとしたら、Keras のバージョンが Python3.8 非対応だと表示されたので pip を使った。
おそらくこれで Keras もインストールされるはず。
されていない時はインストールする。
(ML38)XXX > pip install tensorflow-gpu
(ML38)XXX > pip install keras # インストールされていない場合
- Keras と Tensorflow のバージョンをチェック
(ML38)XXX > pip show keras # 2.6.0
(ML38)XXX > pip show tensorflow-gpu # 2.6.0
-
Anaconda Navigator で Spyder か Jupter Notebook を起動
-
インストールが正常に実施されたかをチェックする
import keras
import tensorflow
エラーが発生する時は、Tensorflow や Kears のバージョンが最適でないことがある。
原因は頑張って探るしかない。
- 必要な CUDA バージョンをチェック
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
表示されたエラーメッセージの冒頭で、今回は以下のようなエラーが発生した。
どうやら CUDA Toolkit は 11.0 を必要としている。
2021-10-03 22:27:35.821119: 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 関連
###CUDA Toolkit 11.2
以下のように CUDA Toolkit 11.0 には 10.x の dll が混ざっていました。そのため、11.2 に変更しています。チェックしたフォルダは、C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin です。
-
今回は 11.2.2 を 古いバージョンの CUDA @ NVIDIA からダウンロードする。
-
ダウンロードした exe を実行する。特に注意することは無し。
-
環境変数 PATH に追加
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include
###cuDNN
-
CUDA Toolkit に対応したバージョンをダウンロードする。
(以下のように、CUDA Toolkit との対応が書いてあるので間違えないこと。)
-
ダウンロードした zip を解凍し、適当な場所に設置する。
今回は C:\cuda にした。
- 環境変数 PATH に追加
C:\cuda
C:\cuda\bin
C:\cuda\lib\x64
C:\cuda\include
##インストール後チェック
###CUDA のバージョンチェック
コマンドプロンプトでチェック
nvcc -V
###Python3.8 環境で GPU が利用可能なことをチェック
::: note info
環境変数 PATH の設定反映のため、Anaconda Navigator で Spyder か Jupter Notebook を再起動すること。
:::
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
問題なく Tensorflow で GPU を利用できる環境が準備できたことがメッセージから見て取れる。
2021-10-03 23:42:23.685509: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2021-10-03 23:42:23.685509: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2021-10-03 23:42:29.203411: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /device:GPU:0 with 7444 MB memory: -> device: 0, name: GeForce RTX 3080, pci bus id: 0000:01:00.0, compute capability: 8.6
###Kaggle で利用できるパッケージのチェック
import できないパッケージがある場合、Anaconda Navigator や pip を使ってインストールする
import numpy
import pandas
import keras
from keras import layers
from keras import models
from keras import optimizers
from keras import regularizers
from keras import metrics
import keras.layers.advanced_activations
import tensorflow as tf
from tensorflow.keras.layers import Input, Dense
from sklearn.model_selection import KFold
from sklearn.model_selection import train_test_split
from sklearn.metrics import log_loss
import matplotlib.pyplot as plt