はじめに
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++ 再頒布可能パッケージのインストール
(既にインストールされている可能性もあります。以下のアプリケーションがインストールされているか確認し、入っていなければインストールします。)
確認場所:コントロールパネル → プログラム → プログラムと機能
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"
cuDNNのインストール
cuDNN v8.1.1をダウンロードします。
後で環境変数のPATHを設定するため、ダウンロードしたファイルを以下のディレクトリに保存します。
今回は、Cドライブの直下に「tools」という名前のフォルダを作成し("C:\tools")、その中にダウンロードしたファイルを解凍して入れます。
(バージョンに関しては、CUDAに対応したものであればよいと思います。)
環境変数の設定
環境変数のPATHを設定します。
様々な方法がありますが、やりたいことは、環境変数の「PATH」にダウンロードしたCUDAファイル内の「bin」「lib64」「include」と保存先として選んだフォルダ(今回はCドライブ直下)に格納したcuDNNファイル内の「bin」までのディレクトリを環境変数のPATHに入れてあげることです。
上の図のPathに以下のディレクトリを入れてあげます。
(保存場所やファイル名によって、ディレクトリは適切に変更してください。)
仮想環境の構築
コマンドプロンプトを開きます。
仮想環境を作りたい先のディレクトリに移動し、以下のコマンドを入力します。
今回は仮想環境の名前を「.venv_ml」にしました。
私の場合、仮想環境をNドライブの中の「.python」というフォルダの下に作りました。
N:\.python\python -m .venv_ml
#仮想環境の名前を「.venv_ml」にしたい場合
python -m venv .venv_ml
#仮想環境の名前を「ML」にしたい場合
python -m venv ML
エクスプローラーでも仮想環境用のファイルを作成できていることが確認できます。
仮想環境を作ったので仮想環境に入ります。
まず、作成した名前のフォルダの中にある「Scripts」というフォルダまで移動します。
N:\.python\cd .venv_ml\Scripts
N:\.python\.venv_ml\Scripts
エクスプローラーで確認すると、以下のフォルダです。
この中の「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」というファイルを作成しました。
「Select Kernel」をクリックすると
以下のような画面が出てきます。
Jupyter Kernelをクリックすると、
先ほど作成した「Kernel」がでてきます。
これをクリックします。すると、先ほど「Select Kernel」と記載されていた場所が設定した「Kernel」の名前になります。
以下のコマンドを入力します。
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
#以下のような出力が得られます(私のPC環境の場合)
....(略)
name: "/device:GPU:0"
device_type: "GPU" ....(略)
ここにGPUが出てこれば、GPUを認識しています。
この状態でTensorFlowを動かせば、GPUを使用できます。
さいごに
初心者の方でもわかりやすいよう、丁寧に説明しました。
不明点等ございましたら、コメントお願いいたします。
今後、機械学習を学ばれる方の参考になれば幸いです。