我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

在本地跑 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

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录