GPU训练的PyTorch模型在CPU运行报错的解决求助
解决Detecto模型在CPU设备上运行的问题
问题根源
Detecto默认优先尝试使用CUDA设备,即使安装了CPU版PyTorch,部分内部逻辑仍可能强制检查CUDA支持,导致断言错误。单纯设置torch.device('cpu')无法覆盖Detecto模型加载和推理的全流程。
分步解决方案
彻底重装CPU版PyTorch
先清理所有残留的PyTorch包,避免版本冲突:pip3 uninstall -y torch torchvision torchaudio重新安装纯CPU版本:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu验证安装是否成功:
import torch print(torch.cuda.is_available()) # 应输出False修改模型加载与推理代码,强制指定CPU
Detecto的Model类支持加载时指定设备,需显式传入CPU设备:import torch from detecto.core import Model from detecto.utils import read_image # 定义CPU设备 device = torch.device('cpu') # 加载模型时指定device参数 model = Model.load('你的模型权重文件.pth', ['类别1', '类别2'], device=device) # 推理时确保图像张量也移到CPU test_image = read_image('测试图片.jpg') test_image = test_image.to(device) # 执行推理 labels, boxes, scores = model.predict(test_image)升级Detecto到最新版本
旧版本Detecto可能存在CPU兼容bug,升级到最新版修复:pip3 install --upgrade detecto排查代码中硬编码的CUDA调用
检查代码中是否有手动调用.cuda()、torch.cuda.*的语句,全部替换为to(device)或者直接移除相关CUDA专属逻辑。
内容的提问来源于stack exchange,提问作者Deo
相关产品推荐
相关产品推荐

