7
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WindowsでGPUを使った機械学習をするためにCUDA、Pytorch、TensorFlow環境を整える

Last updated at Posted at 2024-11-14

この記事はなにか

せっかく強いPCがあるならGPU使ってこうぜ!ってことでWindowsでPythonのCUDA機械学習環境を整えたので、私自身の備忘録がてら、まとめておきます。

構築するもの

  • scoop: Windows向けのパッケージマネージャーで、コマンドラインを通じてソフトウェアを簡単にインストール・管理できるツール
  • Python: 俺たちのPython
  • CUDA: NVIDIA製GPU向けの並列計算プラットフォームおよびAPI
  • cuDNN: NVIDIAが提供するディープラーニング向けのGPUアクセラレーションライブラリで、CUDAと連携して動作
  • Pytorch: 機械学習と深層学習のフレームワーク
  • TensorFlow: Googleが開発したオープンソースの機械学習と深層学習のフレームワーク

前提

ターミナルやコマンドプロンプトが動作する。

scoopのインストール

Windows向けのパッケージマネージャーで、コマンドラインを通じてソフトウェアを簡単にインストール・管理できるツールである、scoopをインストールします。

Windowsキーでpowershellと入力してEnterをしてpowershellを起動してください。

その後以下のコマンドを実行してscoopをインストールします。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
iwr -useb get.scoop.sh | iex

使い方や、何が便利かはちゃちゃっと調べるといっぱい出てきます。

Pythonのインストール

今回、Pythonのインストールからはじめますが、単に、scoop install pythonとやると、最新版がインストールされてしまいます。 (全然インストールしてもよいです。)

しかし、CUDAを用いたTensorFlowは特定のバージョンのPythonでしか安定して動作するものがないので、今回はバージョンを3.10でインストールを進めます。

scoop install python310

また、グローバルに用いるpythonのバージョンを指定するために、以下のコマンドを実行してください。

scoop reset python310

これにて、Pythonのインストールは終了です。(簡単すぎ・・・)

venvでPython環境の管理を行います。

mkdirで適当な名前のフォルダを作って、その中で以下をする。

mkdir python-cuda-test
cd python-cuda-test

その中で以下を実行して、envファイルを作成してください。

python3 -m venv <env名 (project_env)>

一般的には

この中でpip installなどを行います。

source project_env/Scripts/activate

抜けるときは

deactivate

これが参考になった

以下のサイトから、11.8を選択してください。

image.png

このようにして、無事インストールできたら成功です。

CUDAと連携して動作するディープラーニング向けのライブラリである、cuDNNをインストールします。

以下のサイトからCUDA11.X系にあうcuDNNをインストールしてください。

zipを解凍して、bin, include, libの3つのファイルを先ほどインストールしたNVIDIA GPU Computing Toolkit\CUDA\v11.8の中に一つずつコピペする

今回、CUDAの起動と同時にそれらを読み込んでほしいので、その中身を先ほどインストールした

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8 のbin, include, lib中にコピペをします。

以下を実行して問題なく表示されれば問題ない

where cudnn64_8.dll

先ほどPython3.10を入れた理由はここにある。今回、CUDAが安定動作するTensorFlowのバージョンは2.10系である。このTensorFlowはPython3.11以上ではインストールできない。

https://www.tensorflow.org/install?hl=ja&_gl=1*u5d167*_up*MQ..*_ga*MzU2Nzg2ODg4LjE3MzE1MTQwMzE.*_ga_W0YLR4190T*MTczMTUxNDAzMS4xLjAuMTczMTUxNDAzMS4wLjAuMA..

仮想環境の中に入ってTensorFlowをインストールします。

(gpu310)> python -m pip install -U tensorflow==2.10.1 tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer
(gpu310)> python -m pip install git+https://github.com/tensorflow/docs
(gpu310)> python -m pip install git+https://github.com/tensorflow/examples.git
(gpu310)> python -m pip install git+https://www.github.com/keras-team/keras-contrib.git
pip install numpy==1.24.4

PytorchについてもCUDAのバージョンに沿ったものを入れなければならないため、以下をベースにインストールをしてください。

image (1).png

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

動作確認

こうなれば勝ち

$ python
Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.config.list_physical_devices('GPU')
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
>>> for gpu in tf.config.list_physical_devices('GPU'):
...     details = tf.config.experimental.get_device_details(gpu)
...     print(details)
...
{'device_name': 'NVIDIA GeForce RTX 4090', 'compute_capability': (8, 9)}

その他

管理者権限でコマンドプロンプトを起動して、TensorflowがGPUメモリの割り当てを動的に拡張できるように設定しておくとよいことがあるかもしれません。

powershell -command "[System.Environment]::SetEnvironmentVariable(\"TF_FORCE_GPU_ALLOW_GROWTH\", \"true\", \"Machine\")"
7
14
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
7
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?