🎃
YOLOv9の環境構築をする【大量のエラーを添えて】
結論
※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行目を以上のように修正。
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に対応してなさそう
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じゃない。
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