*はじめに [#i31f56cc]
PyTorchのプログラムは、 対応するCUDA, PyTorch, Pythonのバージョンがないと動きません。
ところが、Colabには最新に近いバージョンのCUDA, PyTorch, Pythonしか入っていません。
そこで、ColabでCUDAとPyTorchとPythonをダウングレードします。
*バージョンを確認する [#y30e8076]
**OS [#n0296355]
#geshi(sh){{
!cat /etc/os-release
}}
**CUDA [#w599af99]
#geshi(sh){{
!ls -d /usr/local/cuda-*
!nvcc --version
}}
**PyTorch [#qa13b48a]
#geshi(sh){{
!python -c 'import torch; print(torch.__version__) '
}}
**Python [#i9caba79]
#geshi(sh){{
!python --version
}}
*CUDAをダウングレードする [#z1f23842]
CUDAのダウンロードページ https://developer.nvidia.com/cuda-downloads から、適切なOS (Linux)、アーキテクチャ (x86_64)、確認したディストリビューションとバージョン、Instoller Typeに ''dev (local)'' を選択する。
CUDAのダウンロードページ https://developer.nvidia.com/cuda-downloads から、適切なOS (Linux)、アーキテクチャ (x86_64)、確認したディストリビューションとバージョン、Installer Typeに ''dev (local)'' を選択する。
Base Installerのところに表示される1行目と2行目の先頭に ''!'' をつけてColabで実行する。
#geshi(sh){{
!wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
!sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
}}
3行目以後については、インストールしたいバージョンのダウンロードページ https://developer.nvidia.com/cuda-toolkit-archive から、同様にして実行する。
ただし、最後の行だけ、cuda-xx-x の形でバージョンを指定する。
たとえば、CUDA 11.0.3の場合は次のようになる。
#geshi(sh){{
!wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda-repo-ubuntu2004-11-0-local_11.0.3-450.51.06-1_amd64.deb
!sudo dpkg -i cuda-repo-ubuntu2004-11-0-local_11.0.3-450.51.06-1_amd64.deb
!sudo apt-key add /var/cuda-repo-ubuntu2004-11-0-local/7fa2af80.pub
!sudo apt-get update
!sudo apt-get -y install cuda-11-0
}}
CUDAの古いバージョンをインストールしたら、インストールされているバージョンを確認する。
#geshi(sh){{
!ls -d /usr/local/cuda-*
!nvcc --version
}}
CUDAのバージョンを変更する。
#geshi(sh){{
import os
p = os.getenv('PATH')
ld = os.getenv('LD_LIBRARY_PATH')
os.environ['PATH'] = f"/usr/local/cuda-11.0/bin:{p}"
os.environ['LD_LIBRARY_PATH'] = f"/usr/local/cuda-11.0/lib64:{ld}"
}}
バージョンを変更したら、バージョンを確認する。
#geshi(sh){{
!ls -d /usr/local/cuda-*
!nvcc --version
}}
*Pythonをダウングレードする [#c6205d5c]
バージョンを指定してPythonをインストールする。
Python 3.8の場合、次のようになる。
#geshi(sh){{
!sudo apt install python3.8
!sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
}}
インストールしたら、バージョンを確認する。
#geshi(sh){{
!python --version
}}
ダウングレードしたバージョンに合わせたpipをインストールする
Python 3.8の場合、次のようになる。
#geshi(sh){{
!apt-get install python3.8-distutils
!apt-get install python3-pip
}}
*PyTorchをダウングレードする [#fd5a80dd]
安定パッケージのリスト https://download.pytorch.org/whl/torch_stable.html からバージョンを選択してインストールする。
torchとtorchvisionはGPU用として +cuxxx を付ける。
ここで、xxx はCUDAのバージョンであり、CUDA 11.0の場合は +cu110 となる。
#geshi(sh){{
!pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
}}
インストールしたら、バージョンを確認する。
#geshi(sh){{
!python -c 'import torch; print(torch.__version__) '
}}