torch.cuda.is_available()がFalseでGPUを使えないときの対処
GPUマシンなのに、PyTorchがGPUを認識しない。
import torchprint(torch.cuda.is_available()) # False になってしまう原因の大半は2つ。CPU版のtorchを入れてしまったか、torchが想定するCUDAバージョンと環境が合っていないかだ。
まず入っているtorchを確認する
import torchprint(torch.__version__, torch.version.cuda)torch.version.cuda が None と出たら、それはCPU版だ。GPUは使えない。バージョン名に +cpu が付いている場合も同じ。
ドライバを確認する
ターミナルでGPUとドライバを確認する。
nvidia-smiここでGPUが見えていれば、ハードとドライバは問題なし。あとはtorch側の問題に絞れる。
CUDA対応版を入れ直す
pytorch.org が、環境に合うインストールコマンド(CUDAバージョン指定の index-url 付き)を提示してくれる。それに従って入れ直すのが確実だ。CPU版をうっかり入れると今回の状態になるので、CUDA版を明示して入れる。
# 例(CUDAバージョンは自分の環境に合わせる。公式サイトでコマンドを確認)pip install torch --index-url https://download.pytorch.org/whl/cu121まとめ
torch.version.cudaが None なら CPU版。入れ直すnvidia-smiでドライバとGPUを確認- pytorch.org の指示どおりCUDA対応版を入れる
- 仮想環境を間違えて別のtorchを見ていないかも確認する