🧊
TensorFlow GPU版 をWindowsで動かす最速ガイド
はじめに
この記事では、WindowsでTensorFlow GPU版を動かす手順を説明します。
方法は2つあります。
- WSL2上でTensorFlowを動かす方法(こちらが正攻法)
- Windows上で過去のバージョンのTensorFlowを使う方法
TensorFlowはバージョン2.11でWindowsでのGPUサポートを打ち切りました。
今後はWSL2上で動作させることが推奨されています(方法1)。
ただ、「ちょっと試したいだけなのに、WSL2まで入れるのはちょっと面倒……」と思ってる方のために、TensorFlowのバージョン2.10を使う方法も紹介します(方法2)。
方法1. WSL2上でTensorFlowを動かす方法
1-1. 前提
ここで説明する手順は以下を前提としています。
- PCにNVIDIAのGPUが装着されていること
- Windows側にNVIDIAのドライバがインストールされていること
- Windows側にWSL2がインストールされていること
- 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のインストールは不要です。
ここで説明する手順は以下を前提としています。
- PCにGPUが装着されていること(NVIDIA/AMD/Intel)
- GPUの最新ドライバがインストールされていること
- 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