0
1

【Python】Jupyter環境において、TensorFlowでGPUを使う

Last updated at Posted at 2024-04-04

はじめに

TensorFlowを用いて機械学習を行う際に、GPUを使用しないと、処理が遅いので
GPUを使用して解析する設定にしました。
本記事では、Visual Studio Codeをエディターとして用い、GPUを用いる際に必要なソフトウェアのインストール方法から、仮想環境とJupyter環境の構築まで説明します。

環境

ハードウェア環境

項目
OS Windows 11
CPU 12th Gen Intel(R) Core(TM) i7-12700
GPU NVIDIA GeForce RTX 3060 Ti

ソフトウェア環境

2024/4/1において、TensorFlowはPython 3.9 ~ 3.11に対応

項目
Python 3.9.13
Editor Visual Studio Code

Microsoft Visual C++ 再頒布可能パッケージのインストール

(既にインストールされている可能性もあります。以下のアプリケーションがインストールされているか確認し、入っていなければインストールします。)
確認場所:コントロールパネル → プログラム → プログラムと機能

image.png

Visual Studio 2015、2017、および 2019 の Microsoft Visual C++ 再頒布可能パッケージを
このリンクよりインストールします。

NVIDIA® GPU ドライバ のインストール

こちらのリンクよりお使いのGPUにあったドライバーをインストールします。
次の手順でCUDA® 11.2 をインストールします。
CUDA® 11.2 にはNVIDIA® GPU ドライババージョン 450.80.02 以降が必要となります。
そのため、お使いのGPUが古い場合、対応していない場合があります。

CUDAのインストール

CUDA Toolkit 11.2をこちらのリンクよりダウンロードします。
Window11の対応はありませんでしたが、今のところ問題はありません。
デフォルトだと、以下のディレクトリに格納されると思います。

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2"

image.png

cuDNNのインストール

cuDNN v8.1.1をダウンロードします。
image.png
後で環境変数のPATHを設定するため、ダウンロードしたファイルを以下のディレクトリに保存します。
今回は、Cドライブの直下に「tools」という名前のフォルダを作成し("C:\tools")、その中にダウンロードしたファイルを解凍して入れます。
(バージョンに関しては、CUDAに対応したものであればよいと思います。)

image.png

環境変数の設定

環境変数のPATHを設定します。
様々な方法がありますが、やりたいことは、環境変数の「PATH」にダウンロードしたCUDAファイル内の「bin」「lib64」「include」と保存先として選んだフォルダ(今回はCドライブ直下)に格納したcuDNNファイル内の「bin」までのディレクトリを環境変数のPATHに入れてあげることです。
image.png
上の図のPathに以下のディレクトリを入れてあげます。
(保存場所やファイル名によって、ディレクトリは適切に変更してください。)
image.png

仮想環境の構築

コマンドプロンプトを開きます。
仮想環境を作りたい先のディレクトリに移動し、以下のコマンドを入力します。
今回は仮想環境の名前を「.venv_ml」にしました。
私の場合、仮想環境をNドライブの中の「.python」というフォルダの下に作りました。

N:\.python\python -m .venv_ml
#仮想環境の名前を「.venv_ml」にしたい場合
python -m venv .venv_ml


#仮想環境の名前を「ML」にしたい場合
python -m venv ML

エクスプローラーでも仮想環境用のファイルを作成できていることが確認できます。
image.png
仮想環境を作ったので仮想環境に入ります。
まず、作成した名前のフォルダの中にある「Scripts」というフォルダまで移動します。

N:\.python\cd .venv_ml\Scripts

N:\.python\.venv_ml\Scripts

エクスプローラーで確認すると、以下のフォルダです。
image.png
この中の「activate」というファイルを実行したいので、コマンドプロンプト上で「activate」と記述し、「Enter」を押します。

N:\.python\.venv_ml\Scripts>activate

そうすると、以下のような画面に移ります。

(.venv_ml) N:\.python\.venv_ml\Scripts>

仮想環境の名前がかっこ書きで示されています。
これで仮想環境に入ることができました。

TensorFlowのインストール

TensorFlow 2.11以降はWindowsでGPUをサポートしていません。
そのため、以下のコマンドでTensorFlowをインストールします。

(.venv_ml) N:\.python\.venv_ml\Scripts>pip install "tensorflow<2.11"

Jupyter環境の構築

Jupyter環境で動かすため、ipykernelをインストールします。

(.venv_ml) N:\.python\.venv_ml\Scripts>pip install ipykernel

以下のコマンドでカーネルを追加します。

#カーネルの名前を「ipy_ml」にする場合
(.venv_ml) N:\.python\.venv_ml\Scripts>ipython kernel install --user --name=ipy_ml

#カーネルの名前を「ml」にする場合
(.venv_ml) N:\.python\.venv_ml\Scripts>ipython kernel install --user --name=ml

動作確認

コマンドプロンプト上で確認する場合

コマンドプロンプト上で確認する場合、以下のコマンドを打ち込みます。
(仮想環境に入った状態で行ってください。)

python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

GPUが設定された場合以下の内容が出力されます。

(.venv_ml) N:\.python\.venv_ml\Scripts>python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

Jupyter環境上で確認する場合

ソースコードの内容は同じですので、カーネルの起動方法を説明することになります。
エディターはVisual Studio Codeを用いた手順となります。
まず、適当なディレクトリに「.ipynb」を拡張子とするファイルを作成してください。
今回は、Nドライブのディレクトリの下に「work」というフォルダを作成し、その下に「test.ipynb」というファイルを作成しました。
image.png
「Select Kernel」をクリックすると
image.png
以下のような画面が出てきます。
image.png
Jupyter Kernelをクリックすると、
image.png
先ほど作成した「Kernel」がでてきます。
これをクリックします。すると、先ほど「Select Kernel」と記載されていた場所が設定した「Kernel」の名前になります。
image.png
以下のコマンドを入力します。

test.ipynb
from tensorflow.python.client import device_lib
device_lib.list_local_devices()

#以下のような出力が得られます(私のPC環境の場合)
....()
 name: "/device:GPU:0"
 device_type: "GPU" ....()

ここにGPUが出てこれば、GPUを認識しています。
この状態でTensorFlowを動かせば、GPUを使用できます。

さいごに

初心者の方でもわかりやすいよう、丁寧に説明しました。
不明点等ございましたら、コメントお願いいたします。
今後、機械学習を学ばれる方の参考になれば幸いです。

0
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
0
1