文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

debug: NameError: name ‘_C‘ is not defined 本地运行 GroundingDINO 代码 debug 记录

2023-09-03 08:58

关注

在本地跑 GroundingDINO 代码 (github

首先down下来代码:
git clone https://github.com/IDEA-Research/GroundingDINO.git
然后跟着 readme 走,先下载预训练参数放到 ./weight 文件夹:
mkdir weights
cd weights
wget -q https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth

然后新开一个 py 文件,复制 readme 上的代码运行:

from groundingdino.util.inference import load_model, load_image, predict, annotateimport cv2model = load_model("groundingdino/config/GroundingDINO_SwinT_OGC.py", "weights/groundingdino_swint_ogc.pth")IMAGE_PATH = "weights/dog-3.jpeg"TEXT_PROMPT = "chair . person . dog ."BOX_TRESHOLD = 0.35TEXT_TRESHOLD = 0.25image_source, image = load_image(IMAGE_PATH)boxes, logits, phrases = predict(    model=model,    image=image,    caption=TEXT_PROMPT,    box_threshold=BOX_TRESHOLD,    text_threshold=TEXT_TRESHOLD)annotated_frame = annotate(image_source=image_source, boxes=boxes, logits=logits, phrases=phrases)cv2.imwrite("annotated_image.jpg", annotated_frame)

然后报错和 debug,这个错误都是普适性错误,第二次犯了,所以记录下来,防止再犯

NameError: name ‘_C’ is not defined

省流

运行
pip3 install -q -e .

详细过程

之前跑另一个模型的时候也遇到这个问题,勉强记得是因为没有编译模型。down 下来的代码有个 setup.py 文件,于是我尝试运行:
python setup.py

但是报错:error: no commands supplied

然后发现后面应该加上 build 或者 install,所以我重新运行:
python setup.py install
python setup.py build
但是还是不行,还是报错

查到大家在讨论这个问题:NameError: name ‘_C’ is not defined

说应该设置环境变量 CUDA_HOME,原因是,查 setup 代码:

   if CUDA_HOME is not None and (torch.cuda.is_available() or "TORCH_CUDA_ARCH_LIST" in os.environ):       print("Compiling with CUDA")       extension = CUDAExtension       sources += source_cuda       define_macros += [("WITH_CUDA", None)]       extra_compile_args["nvcc"] = [           "-DCUDA_HAS_FP16=1",           "-D__CUDA_NO_HALF_OPERATORS__",           "-D__CUDA_NO_HALF_CONVERSIONS__",           "-D__CUDA_NO_HALF2_OPERATORS__",        ]

但是确实打印了 Compiling with CUDA,但是还是没有那个重要的 _C

然后重新看了下 readme 怎么写的,发现有一步是:pip3 install -q -e .
这步我当时跳过了,因为我本地有一个已经配置好的环境,需要的包都装好了,想着不用 install 了反而把已经配置好的版本弄乱了,没想到就是这句话决定了一切 orz

结论:要遵循 readme 写的来做,不然人家为啥那么写呢。

来源地址:https://blog.csdn.net/Cleo_Gao/article/details/130562873

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯