LoginSignup
1
1

More than 1 year has passed since last update.

Keras/Tensorflow セットアップ for GPU (Kaggle 類似環境作り)

Last updated at Posted at 2021-10-03

環境概要

念願の 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

インストール手順

Python 関連

Python3.8 環境の準備

  • Anaconda Navigator をインストール

  • python3.8 の環境を Create(ここでは ML38 を作成)

  • Anacond Prompt を起動
    image.png

  • 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 を起動

  • インストールが正常に実施されたかをチェックする

xxx.py
import keras
import tensorflow

エラーが発生する時は、Tensorflow や Kears のバージョンが最適でないことがある。
原因は頑張って探るしかない。

  • 必要な CUDA バージョンをチェック
xxx.py
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 です。

image.png

  • 今回は 11.2.2 を 古いバージョンの CUDA @ NVIDIA からダウンロードする。
    image.png

  • ダウンロードした 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 との対応が書いてあるので間違えないこと。)
    image.png

  • ダウンロードした zip を解凍し、適当な場所に設置する。 

今回は C:\cuda にした。

  • 環境変数 PATH に追加
C:\cuda
C:\cuda\bin
C:\cuda\lib\x64
C:\cuda\include

インストール後チェック

CUDA のバージョンチェック

コマンドプロンプトでチェック

nvcc -V

Python3.8 環境で GPU が利用可能なことをチェック

環境変数 PATH の設定反映のため、Anaconda Navigator で Spyder か Jupter Notebook を再起動すること。

xxx.py
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 を使ってインストールする

xxx.py
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
1
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
1
1