断言错误:请求的 CUDA '--device 0' 无效,请使用 '--device cpu' 或在 GoogleColabratory 中传递有效的 CUDA 设备 python train_dual.py

问题描述 投票:0回答:2

我正在使用 Google Collab 尝试重建 yolo9,以便可以针对自定义对象对其进行训练。* https://deasadiqbal.medium.com/yolov9-object-detection-on-custom-dataset-computer-vision-项目-357bac70daeb*

当我进来时

!python train_dual.py --workers 8 --batch 4  --img 640 --epochs 50 --data /content/yolov9/data.yaml --weights /content/yolov9-e.pt --device 0 --cfg /content/yolov9/models/detect/yolov9.yaml --hyp /content/yolov9/data/hyps/hyp.scratch-high.yaml  

我收到以下错误消息:

2024-03-13 21:16:22.000080: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered
2024-03-13 21:16:22.001565: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
2024-03-13 21:16:23.188892: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
train_dual: weights=/content/yolov9-e.pt, cfg=/content/yolov9/models/detect/yolov9.yaml, data=/content/yolov9/data.yaml, hyp=/content/yolov9/data/hyps/hyp.scratch-high.yaml, epochs=50, batch_size=4, imgsz=640, rect=False, resume=False, nosave=False, noval=False, noautoanchor=False, noplots=False, evolve=None, bucket=, cache=None, image_weights=False, device=0, multi_scale=False, single_cls=False, optimizer=SGD, sync_bn=False, workers=8, project=runs/train, name=exp, exist_ok=False, quad=False, cos_lr=False, flat_cos_lr=False, fixed_lr=False, label_smoothing=0.0, patience=100, freeze=[0], save_period=-1, seed=0, local_rank=-1, min_items=0, close_mosaic=0, entity=None, upload_dataset=False, bbox_interval=-1, artifact_alias=latest
Traceback (most recent call last):
  File "/content/yolov9/train_dual.py", line 644, in <module>
    main(opt)
  File "/content/yolov9/train_dual.py", line 524, in main
    device = select_device(opt.device, batch_size=opt.batch_size)
  File "/content/yolov9/utils/torch_utils.py", line 114, in select_device
    assert torch.cuda.is_available() and torch.cuda.device_count() >= len(device.replace(',', '')), \
AssertionError: Invalid CUDA '--device 0' requested, use '--device cpu' or pass valid CUDA device(s)```

I am new at this and appreciate your assistance and may need more as I go along.
google-colaboratory nvidia yolo
2个回答
0
投票

您应该加入YOLO Discord 服务器。在#general频道中,YOLOv9的话题最近被很多用户讨论。大家的结论都是一样的:YOLOv9还没有准备好通用。不仅仅是构建问题,而且它不能很好地处理自定义数据集。

如果你想使用的是具体YOLOv9,那么我现在写给你的并不是对你帖子的回答。对不起!

如果你真正想要的是在 colab 上使用 YOLO,那么我有一个不同的建议要提。看看我上面链接的不和谐服务器上的#darknet-and-google-colab 频道。该频道固定了几个笔记本,逐步解释如何在 google colab 上使用 Darknet/YOLO。例如:


0
投票

除了已经提供的答案之外,我还有一个额外的线索:

您正在使用 Colab,并且有不同的 GPU 和设置可用。 某些 Colab 设置没有 GPU!

正如 CUDA-Error 所示,您可能需要使用

cpu
(通过使用
device="cpu"
而不是
device=0
或建议的 CLI 参数)或激活 GPU 支持。 要在 Google Colab 中激活 GPU,请导航至
Edit -> Notebook Settings
并从硬件加速器菜单中选择 GPU(如适用于您的情况的 Google“TensorFlow with GPU”指南中清楚描述的)。

© www.soinside.com 2019 - 2024. All rights reserved.