Korniaをinstallしたらtorch.cuda.is_available() がFalseを返すようになってしまった。
今まで問題なくGPUで学習ができていて、ドライバも問題なく動いている。
環境は以下の通り、
Python = 3.8
CUDA 10.2
Pytorch =1.12.1
上記の通り、問題が起きたのはKorniaをinstallしたとき。
Korniaをinstallした後にcuda.is_available()がFalseを返すようになった。
なぜこうなってしまったのか
原因はKorniaをinstallしたときにPytorchも上書きインストールされてしまうからだった。
また、この後に
conda install pytorch -c pytorch
でインストールし直すと、cpu用のPytorchがインストールされてしまう問題が続き発生した。
バージョンとビルドを指定してインストールして無事解決
そこで、versionとbuildを指定してcudaのversionをインストールした。
conda install pytorch=1.12.1=py3.8_cuda10.2_cudnn7.6.5_0 -c pytorch
これで無事動くようになった。
自分の環境にあったpytorchバージョンを選ぶ
対応したPytorchのversionとbuildを検索するのは
conda search pytorch -c pytorch
で検索して、自身の使用しているPytorchのversionとcudaのバージョンに適合しているもののbuildを確認しよう。
CPU版とCUDA版の見分け方
CPU版GPU(CUDA)版のbuildの例は以下のようになっている。
py3.8_cpu_0
py3.8_cuda10.2_cudnn7.6.5_0
見ての通り、cpu版にはcpuと書かれている。
Anacondaの仮想環境で現在インストールされているPytorchのversionやbuildを確認する方法は以下のようにする。
$ conda list | grep pytorch
>
# Name Version Build Channel
pytorch 1.12.1 py3.8_cuda10.2_cudnn7.6.5_0 pytorch
pytorch-mutex 1.0 cuda pytorch
torchvision 0.13.1 py38_cu102 pytorch
間違ってCPU版のPytorchをinstallすると、cudaが使えないので気を付けよう。
コメント