🧊

TensorFlow GPU版 をWindowsで動かす最速ガイド

に公開

logo

はじめに

この記事では、WindowsTensorFlow GPU版を動かす手順を説明します。

方法は2つあります。

  1. WSL2上でTensorFlowを動かす方法(こちらが正攻法)
  2. Windows上で過去のバージョンのTensorFlowを使う方法

TensorFlowはバージョン2.11でWindowsでのGPUサポートを打ち切りました
今後はWSL2上で動作させることが推奨されています(方法1)。

ただ、「ちょっと試したいだけなのに、WSL2まで入れるのはちょっと面倒……」と思ってる方のために、TensorFlowのバージョン2.10を使う方法も紹介します(方法2)。


方法1. WSL2上でTensorFlowを動かす方法

1-1. 前提

ここで説明する手順は以下を前提としています。

  1. PCにNVIDIAのGPUが装着されていること
  2. Windows側にNVIDIAのドライバがインストールされていること
  3. Windows側にWSL2がインストールされていること
  4. WSL2側にpyenvがインストールされていること

1-2. 手順

以下の手順をWSL2側で実行してください。

# Pythonをインストール(もう既に入ってるなら不要)
pyenv install 3.12.0

# プロジェクト用のディレクトリを作成(名前は任意)
mkdir tensorflow-test
cd tensorflow-test

# プロジェクトでPython 3.12.0を使用するよう設定(バージョンは自分の環境に置き換えて)
pyenv local 3.12.0

# Python仮想環境を作成
python -m venv venv

# Python仮想環境をアクティブ化
source venv/bin/activate

# tensorflow と CUDA を一緒にインストール
pip install tensorflow[and-cuda]

1-3. 動作確認

以下のプログラムを実行し、正常に動作すれば問題ありません。

test.py
import tensorflow as tf

# 使用可能なGPUデバイスの一覧を表示
gpus = tf.config.list_physical_devices('GPU')
if gpus:
    print(f"\n見つかったGPUの数: {len(gpus)}")
    for gpu in gpus:
        print(f"GPUデバイス名: {gpu}")
    # 実際に計算がGPUで行われるか簡単な演算で確認
    with tf.device('/GPU:0'):
        a = tf.constant([[1.0, 2.0, 3.0]])
        b = tf.constant([[4.0, 5.0, 6.0]])
        c = tf.matmul(a, b, transpose_b=True)
        print("GPUでの計算結果:", c.numpy())
else:
    print("GPUが見つかりません。")

方法2. Windows上で過去のバージョンのTensorFlowを使う方法

2-1. 前提

ここではTensorFlow 2.10とMicrosoftのDirectMLプラグイン(CUDAは使用しない)を使用する方法を紹介します。CUDAを使用しないため、CUDAのインストールは不要です。

ここで説明する手順は以下を前提としています。

  1. PCにGPUが装着されていること(NVIDIA/AMD/Intel
  2. GPUの最新ドライバがインストールされていること
  3. Windowsにpyenvがインストールされていること

2-2. 手順

以下の手順をWindowsで実行してください。

# Pythonをインストール(もう既に入ってるなら不要)
pyenv install 3.10.11

# プロジェクト用のディレクトリを作成(名前は任意)
mkdir tensorflow-test
cd tensorflow-test

# Python 3.10.11 を使用するように設定
pyenv local 3.10.11

# Python仮想環境を作成
python -m venv venv

# Python仮想環境をアクティブ化
venv\scripts\activate

# tensorflow 2.10 をインストールする
pip install tensorflow==2.10

# numpy のバージョン2を消してバージョン1を入れる
# numpy バージョン2系だとtensorflow 2.10が動かない
pip uninstall numpy
pip install "numpy>=1,<2"

# tensorflow DirectML Pluginをインストール
# これでGPUを使用できるようになる
pip install tensorflow_directml_plugin

2-3. 動作確認

以下のプログラムを実行し、正常に動作すれば問題ありません。

test.py
import tensorflow as tf

# 使用可能なGPUデバイスの一覧を表示
gpus = tf.config.list_physical_devices('GPU')
if gpus:
    print(f"\n見つかったGPUの数: {len(gpus)}")
    for gpu in gpus:
        print(f"GPUデバイス名: {gpu}")
    # 実際に計算がGPUで行われるか簡単な演算で確認
    with tf.device('/GPU:0'):
        a = tf.constant([[1.0, 2.0, 3.0]])
        b = tf.constant([[4.0, 5.0, 6.0]])
        c = tf.matmul(a, b, transpose_b=True)
        print("GPUでの計算結果:", c.numpy())
else:
    print("GPUが見つかりません。")

まとめ

この記事ではWindowsでTensorFlow GPU版を使う方法を2つ紹介しました。
どちらの方法を使ったほうがいいか迷ったら、以下の基準を参考にしてください。

  • 今後も最新のTensorFlowや他のAIライブラリを使いたい場合はWSL2一択!
  • 手軽にちょっとだけ試したい&NVIDIA以外のGPUでも動かしたいなら、DirectML方式もアリ。ただし自己責任で!

それでは今回はこの辺で。
じゃあね♪ バイバイ😊

Discussion