🎃

YOLOv9の環境構築をする【大量のエラーを添えて】

2024/06/13に公開

結論

※windowsだが、gitbashを使っている

git clone git@github.com:WongKinYiu/yolov9.git

python -m venv venv # 仮想環境作成
source venv/Scripts/activate # 仮想環境有効化
# gitbashを使っているので、windowsのターミナルだと書き方が違うので注意

pip install -r requirements.txt # 必要なライブラリ入れる

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # cuda対応のpytorchを入れる

pip install torchvision==0.18.1+cu118 -f https://download.pytorch.org/whl/torch_stable.html # cuda対応のtorchvisionを入れる
# なぜかtorchを入れた時にはcuda対応が入らなかった。バージョン指定して入れるのが良さそう?

ポイントは、cuda対応のライブラリを入れなおすこと。

結論として、cuda対応じゃないtochやtorchvisionを入れるとエラーばかり。requirementsで入れたのが悪いのか分からないですが、一応動かすことができたので、備忘録としてまとめました。

試行錯誤の履歴

AttributeError: 'list' object has no attribute 'device'

$ python detect.py --device 0 --source 0 --weights './yolov9-e.pt'

AttributeError: 'list' object has no attribute 'device'
utils/general.py
    if isinstance(prediction, (list, tuple)):  # YOLO model in validation model, output = (inference_out, loss_out)
        prediction = prediction[0][0]  # ここを変更

utils/general.pyの903行目を以上のように修正。
https://qiita.com/Yuzu2yan/items/f1ffc75cc869f5995a46
https://github.com/WongKinYiu/yolov9/issues/11

AssertionError: Invalid CUDA '--device 0' requested, use '--device cpu' or pass valid CUDA device(s)

> $ python detect.py --device 0 --source 0 --weights './yolov9-e.pt'
AssertionError: Invalid CUDA '--device 0' requested, use '--device cpu' or pass valid CUDA device(s)
import torch

print(torch.__version__)
print(torch.cuda.is_available())
torch.cuda.current_device()

プログラムのルートにあるdetect.pyの一番上にcudaの状況を調べるために以上のプログラムを追加。

2.3.1+cpu #出力結果
False #出力結果

どうやらcudaに対応してなさそう

https://note.com/oyasai123/n/n08ac06ea2691

python detect.py --device 0 --source 0 --weights './yolov9-e.pt'
2.3.1+cu118
True

ただ、torchvisonでエラー出た。

NotImplementedError: Could not run 'torchvision::nms' with arguments from the 'CUDA' backend. 

NotImplementedError: Could not run 'torchvision::nms' with arguments from the 'CUDA' backend.

uninstallしてinstallしてみたが変わらず。

torch                   2.3.1+cu118
torchaudio              2.3.1+cu118
torchvision             0.18.1

torchvisionがgpuじゃない。
https://qiita.com/minti36/items/71768b20fdfc36b86e34

pip install torchvision==0.18.1+cu118 -f https://download.pytorch.org/whl/torch_stable.html
torch                   2.3.1+cu118
torchaudio              2.3.1+cu118
torchvision             0.18.1+cu118

cudaに対応した。

無事に動いた。

最後に

「issue早く適用すればいいのに…」

生成AI、LLM、AI系の仕事はこんなエラーとか環境構築をやるべき(;´Д`)

Discussion