torchaudioをインストールするとtorchがcpu用のものになる

colab上でtorchaudioをインストールして使っていたのだが、いつの間にか学習速度が落ちていた

$ !import torch
$ !print(torch.cuda.is_available())
False

とりあえずやってみると上記のようになったのでgpuが使えていないことがわかる

先月実行した際は同じコードでgpuが使われていたので何かが変わったと思われる

ということで見ていくと以下のようなエラーになっていた

$ !pip install torchaudio==0.6.0
Collecting torchaudio==0.6.0
  Downloading https://files.pythonhosted.org/packages/96/34/c651430dea231e382ddf2eb5773239bf4885d9528f640a4ef39b12894cb8/torchaudio-0.6.0-cp36-cp36m-manylinux1_x86_64.whl (6.7MB)
     |████████████████████████████████| 6.7MB 10.0MB/s 
Collecting torch==1.6.0
  Downloading https://files.pythonhosted.org/packages/38/53/914885a93a44b96c0dd1c36f36ff10afe341f091230aad68f7228d61db1e/torch-1.6.0-cp36-cp36m-manylinux1_x86_64.whl (748.8MB)
     |████████████████████████████████| 748.8MB 16kB/s 
Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from torch==1.6.0->torchaudio==0.6.0) (1.18.5)
Requirement already satisfied: future in /usr/local/lib/python3.6/dist-packages (from torch==1.6.0->torchaudio==0.6.0) (0.16.0)
ERROR: torchvision 0.8.1+cu101 has requirement torch==1.7.0, but you'll have torch 1.6.0 which is incompatible.
Installing collected packages: torch, torchaudio
  Found existing installation: torch 1.7.0+cu101
    Uninstalling torch-1.7.0+cu101:
      Successfully uninstalled torch-1.7.0+cu101
Successfully installed torch-1.6.0 torchaudio-0.6.0

元々入っているgpu対応のtorchが削除されてtorch-1.6.0が入っていた

version指定がいけないのかと思い、指定なしでやっても同様で最終的にcpu対応のtorchが入ってしまった

解決策はこちら
https://discuss.pytorch.org/t/installing-torchaudio-on-google-colab/18512

$ !apt-get install sox libsox-dev libsox-fmt-all
$ !pip install git+git://github.com/pytorch/audio

これによりローカルでビルドされるため現在入っているtorchに合わせてビルドされる

以前も依存関係の問題でcuda.is_available() = Falseとなっていたことがあったため、今後は学習実行のセルの最初に以下を表示しておくことにする

import torch
print(f"cuda is available: {torch.cuda.is_available()}")