【解決済】Detectron2がUbuntuでエラーで動かないとき

ブログ

いろんなバージョンのせいで5時間くらい格闘して、やっとのことで動くようにできたので、メモ的に書きます。OSはUbuntu18.04です。

発生したエラーたち

ImportError: libcudart.so.10.2: cannot open shared object file: No such file or directory
RuntimeError: CUDA error: no kernel image is available for execution on the device
ImportError: /home/cassea/.pyenv/versions/3.7.4/lib/python3.7/site-packages/detectron2/_C.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN3c106detail12infer_schema20make_function_schemaENS_8ArrayRefINS1_11ArgumentDefEEES4_

エラーを元に1つ1つCUDA、PyTorch、Detectron2のバージョンを変えまくった結果、上記エラーを無限ループしていました。。

CUDAのバージョンとインストール方法

うまくいったバージョンは以下の状態です。

⋊> ~ nvcc -V                                                                                                                              12:21:13
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_May__3_19:15:13_PDT_2021
Cuda compilation tools, release 11.3, V11.3.109
Build cuda_11.3.r11.3/compiler.29920130_0

CUDAは11.3です。ここ↓をコピペし、

CUDA Toolkit 11.3 Downloads
Resources CUDA Documentation/Release NotesMacOS Tools Training Sample Code Forums Archive of Previous CUDA Releases FAQ Open Source PackagesSubmit a Bug

こんなシェルスクリプトにして実行しました。下のコードを適当な名前(僕はinstall_cuda.shとしました)で保存し、sh install_cuda.sh とすれば実行できます。家のインターネット回線が遅い場合は30分とかかかるかもしれません。

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda-repo-ubuntu1804-11-3-local_11.3.0-465.19.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-11-3-local_11.3.0-465.19.01-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu1804-11-3-local/7fa2af80.pub
sudo apt update
sudo apt -o Dpkg::Options::="--force-overwrite" install cuda-11-3 cuda-drivers

PyTorch, Detectron2のバージョンとインストール方法

うまくいったバージョンは以下の状態です。

Python 3.7.4 (default, Aug 29 2021, 15:32:09)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.__version__
'1.10.0+cu113'
>>> torchvision.__version__
'0.11.1+cu113'
>>> detectron2.__version__
'0.6'

PyTorchのインストールは、https://pytorch.org/get-started/locally/から

pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html

をそのまま使いました。(2021年11月時点)

Detectron2のインストールには

 pip install 'git+https://github.com/facebookresearch/detectron2.git'

というコマンドを使いました。

タイトルとURLをコピーしました