2025.5.26 16:50补充:pytorch在1.9版本开始不再支持input.type()这种方式
// 旧写法(已弃用)
auto dtype = input.type().scalar_type();
auto device = input.type().backend();
// 新写法(推荐)
auto dtype = input.scalar_type();
auto device = input.device().type();
PyTorch 版本 | input.type() | input.scalar_type() |
---|---|---|
≤ 1.4 | ✅ 支持 | ✅ 支持 |
1.5 – 1.8 | ⚠️ 弃用中 | ✅ 推荐 |
≥ 1.9 | ❌ 不支持 | ✅ 必须使用 |
2025.5.19 18:00 补充:官方colab没有设置CUDA_HOME,可以考虑使用如下代码设置
import os
os.environ['CUDA_HOME'] = '/usr/local/cuda'
最近在colab尝试Grounding DINO的demo(ipynb)时遇到了一些问题:
1.NameError: name '_C' is not defined
2.error: subprocess-exited-with-error
运行出问题部分(该部分问题不解决,直接运行后续预测代码,会报错NameError: name '_C' is not defined):
%cd {HOME}
!git clone https://github.com/IDEA-Research/GroundingDINO.git
%cd {HOME}/GroundingDINO
!pip install -q -e .
!pip install -q roboflow
解决办法:
修改”GroundingDINO/groundingdino/models/GroundingDINO/csrc/MsDeformAttn/ms_deform_attn_cuda.cu“文件第65行与135行,将value.type()修改为value.scalar_type(),修改完后重新运行出问题部分代码,可以成功跑起来。
出错原因:colab上使用的torch2.6.0+cuda12.5或以上版本已经不再兼容旧的.type()方式,导致groundingdino库构建出错,无法成功安装