如何解决Colab中Autodistill的Invalid CUDA Error?
解决Autodistill YOLOv8训练时的CUDA设备错误
问题原因
Ultralytics的设备选择函数要求CUDA设备参数为**数字索引(如0)**或"cpu",但你的环境中CUDA_VISIBLE_DEVICES被错误设置为字符串"cuda",导致解析失败——尽管Torch能正常检测到GPU存在。
解决方案
方案1:修正环境变量
先重置CUDA_VISIBLE_DEVICES为正确的设备索引(你的环境中设备数为1,对应索引0):
import os os.environ['CUDA_VISIBLE_DEVICES'] = '0'
如果不确定设备索引,也可以直接删除这个错误的环境变量:
import os del os.environ['CUDA_VISIBLE_DEVICES']
方案2:训练时显式指定设备
修改训练代码,直接传入正确的设备参数,覆盖默认检测逻辑:
%cd {HOME} from autodistill_yolov8 import YOLOv8 target_model = YOLOv8("yolov8n.pt") target_model.train(DATA_YAML_PATH, epochs=50, device='0') # 显式指定使用GPU 0
若临时需要用CPU训练,可改为:
target_model.train(DATA_YAML_PATH, epochs=50, device='cpu')
验证修改效果
执行以下代码确认CUDA状态正常:
import torch import os print(torch.cuda.is_available()) # 应返回True print(torch.cuda.device_count()) # 应返回1 print(os.environ.get('CUDA_VISIBLE_DEVICES', '未设置')) # 应显示0或"未设置"
内容的提问来源于stack exchange,提问作者Uğur Demirezen
相关产品推荐
相关产品推荐

