报错解决:Fatal error: ‘THC/THC.h‘: No such file or directory

报错解决:Fatal error: 'THC/THC.h': No such file or directory

  • 报错
  • 原因
  • 解决方法
  • 总结
  • 参考文献

报错

博主的软硬件环境(供参考):

  • Linux
  • NVIDIA GeForce RTX 3090
  • CUDA 11.6
  • gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
  • Pytorch:1.12.0+cu116

博主在安装mmdetection3d的时候,遇到了Fatal error: 'THC/THC.h': No such file or directory的报错。

# 下载mmdetection3d
git clone https://github.com/open-mmlab/mmdetection3d.git
# 切换目录
cd mmdetection3d
# 由于代码需要,切换到指定分支
git checkout v0.17.1
# 编译安装
pip install -v -e .

报错如下:

 ...
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++mmdet3d/ops/ball_query/src/ball_query.cpp:4:10: fatal error: THC/THC.h: No such file or directory#include <THC/THC.h>^~~~~~~~~~~compilation terminated.error: command 'gcc' failed with exit status 1
ERROR: Command errored out with exit status 1: 
... 
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.
The above exception was the direct cause of the following exception:
...
RuntimeError: Error compiling objects for extension

完整报错如下图所示:
在这里插入图片描述

原因

报错的原因是THC方法目前在最新版本的 Pytorch 中已被弃用,并被 ATen API 取代,因此在高版本的Pytorch(版本在1.11.0及以上)编译安装mmdet3d的时候就会遇到无法找到THC/THC.h的报错。

解决方法

解决方法有两种:

  1. 安装低版本的Pytorch,再安装mmdet3d。
    例如,经亲测1.9.1版本的Pytorch可以正常编译成功,命令如下:
conda create -n test python=3.8 -y
conda activate test
pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html
# 安装mmcv、mmdetection和mmsegmentation
# 安装mmdetection3d
  1. 根据报错的反馈,把所有包含<THE/THC.h>头文件的#include <THE/THC.h>注释掉,取而代之是新的头文件,代码如下:
//Comment Out
//#include <THE/THC.h>
//extern THCState *state;
//cudaStream_t stream = THCState_getCurrentStream(state);//Replace with
#include <ATen/cuda/CUDAContext.h>
#include <ATen/cuda/CUDAEvent.h>
cudaStream_t stream = at::cuda::getCurrentCUDAStream();

总结

在安装mmcv、mmdet、mmseg和mmdet3d的时候,首先一定要注意各版本之间的依赖关系,以及软硬件版本,例如Pytorch版本、显卡驱动版本和CUDA版本等等。其次,注意环境的依赖项,如遇到ModuleNotFoundError: No module named ‘XXX’的问题,那就根据报错提示,进行安装相关依赖:pip install XXX,也可参考博主的另一片博客:报错解决:ModuleNotFoundError: No module named ‘XXX’。最后,如果依赖和版本都没有问题,那就依据报错信息,逐一排查其他问题,将BUG解决。

参考文献

  1. https://stackoverflow.com/questions/72988735/replacing-thc-thc-h-module-to-aten-aten-h-module
  2. https://github.com/open-mmlab/mmdetection3d/issues/1332

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/201898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv8创新魔改教程(三)如何添加注意力机制注意力机制的用法与思考

注意力机制的用法与思考 好多同学问我加了CA注意力机制&#xff0c;CBAM注意力机制&#xff0c;都没有涨点&#xff0c;然后就在不停地换不同的注意力机制&#xff0c;其实并不是这样的。今天和大家讨论一下注意力机制的用法与思考。 &#xff08;一&#xff09;添加位置 大…

东芝CT高压电源维修VP-33452 ULTIMAX80 DREX-ULT80

东芝高压电源多用于东芝CT机XVISION/EX、AUKLET系列、ASTEION系列、以及多排系列。 电源内部电路不得随意更改。电源维修的几点注意事项&#xff0c;希望大家能够在以后遇到类似的问题能帮帮助到大家。spellmαnl电源维修一首先在维修开关电源时&#xff0c;维修人员在修理时注…

计算机视觉GPT时刻!UC伯克利三巨头祭出首个纯CV大模型,推理惊现AGI火花

计算机视觉的GPT时刻&#xff0c;来了&#xff01; 最近&#xff0c;来自UC伯克利的计算机视觉「三巨头」联手推出了第一个无自然语言的纯视觉大模型&#xff08;Large Vision Models&#xff09;&#xff0c;并且第一次证明了纯视觉模型本身也是可扩展的&#xff08;scalabil…

JVM 分析GC日志

GC日志参数 -verbose:gc 输出gc日志信息&#xff0c;默认输出到标准输出 -XX:PrintGC 输出GC日志。类似&#xff1a;-verbose:gc -XX:PrintGCDetails 在发生垃圾回收时打印内存回收详细的日志&#xff0c;并在进程退出时输出当前内存各区域分配情况 -XX:PrintGCTimeStam…

天池SQL训练营(四)-集合运算-表的加减法和join等

-天池龙珠计划SQL训练营 4.1表的加减法 4.1.1 什么是集合运算 集合在数学领域表示“各种各样的事物的总和”, 在数据库领域表示记录的集合. 具体来说,表、视图和查询的执行结果都是记录的集合, 其中的元素为表或者查询结果中的每一行。 在标准 SQL 中, 分别对检索结果使用 U…

YOLOv3 学习笔记

文章目录 前言一、YOLOv3贡献和改进二、YOLOv3的核心概念2.1 基础理论和工作原理2.2 YOLOv3对比YOLOv1和YOLOv22.2.1 YOLOv12.2.2 YOLOv2/YOLO90002.2.3 YOLOv3 三、YOLOv3的网络架构3.1 Darknet-533.2 残差连接3.3 多尺度预测3.4 锚框3.5 类别预测和对象检测3.6 上采样和特征融…

halcon如何设置窗口背景颜色?

halcon窗口背景默认是黑色&#xff0c;有时候图片背景是黑色&#xff0c;不方便观察边缘&#xff0c;如果需要设置窗口背景颜色&#xff0c;可以使用如下算子。 设置窗口背景颜色&#xff1a;白色 set_window_param (WindowHandle, background_color, white) 设置白色后的效…

Linux 基础知识整理(三)

Linux文件和目录 Linux系统是一种典型的多用户系统&#xff0c;不同的用户有不一样的地位和权限。为了保护系统的安全性&#xff0c;Linux系统对不同的用户访问同一文件&#xff08;包括目录文件&#xff09;的权限做了不同的规定。 root权限最高&#xff0c;可以通过ls -l 或…

网络安全赚不了大钱却值得入行?真相只有一个!

想要知道网络安全行业收入的现状&#xff0c;首先要对网络安全行业有一个大概的了解。网络安全行业并不是一个笼统的概念&#xff0c;业内人士都知道&#xff0c;“网络安全行业”和“网络安全岗位”是两个概念。 网络安全行业是倾向于做网络安全相关产品、解决方案、服务的企业…

老师如何管理学生?

老师可以通过以下几点来管理学生&#xff1a; 1. 建立积极的关系&#xff1a;老师应该与学生建立积极的关系&#xff0c;鼓励学生参与课堂和课外活动&#xff0c;热情地回应学生的问题和需求。 2. 设定明确的规则&#xff1a;老师应该制定明确的课堂和学校规则&#xff0c;并向…

前端十几年后的变迁:从代码编织者到创新驱动者

十几年前的前端开发&#xff0c;是一个被大多数人忽视的领域。那时的网页设计简陋&#xff0c;功能单一&#xff0c;前端开发的工作也相对简单。然而&#xff0c;随着科技的发展和互联网的普及&#xff0c;前端开发已经从一个边缘角色成长为一个关键的创新驱动力。那么&#xf…

智能时代:互联网+如何改变我们的生活与工作

引言 随着科技的不断进步和互联网的普及&#xff0c;我们正处在一个智能时代。这个时代被互联网所定义&#xff0c;它深刻地改变了我们的生活和工作方式。从社交互动到日常工作&#xff0c;智能时代的影响无处不在&#xff0c;给人们带来了前所未有的变革和机遇。 互联网的涌…

软件提示找不到“vcruntime140.dll丢失的五个解决方法”(有效方法)

“vcruntime140.dll丢失的五个解决方法”。在我们的日常生活和工作中&#xff0c;有时候会遇到一些电脑问题&#xff0c;而vcruntime140.dll丢失就是其中之一。那么&#xff0c;什么是vcruntime140.dll文件呢&#xff1f;它为什么会丢失&#xff1f;又该如何解决这个问题呢&…

2米分辨率高分六号卫星数据与高分一号卫星数据幅宽对比

目前我国国产2米卫星群组包括了高分一号、高分一号B/C/D、资源三号、资源三号02、高分六号等多颗卫星&#xff0c;在覆盖能力上已经有了很大的进步&#xff0c;在满足空间分辨率的同时大大增强了时间分辨率。 高分六号卫星和高分一号卫星都是具有2米分辨率的国产卫星影像,高分…

1.1美术理论基础

一、光影 物体呈现在人们眼前的时候&#xff0c;不同的受光面其明暗变化以及物体的影子。 1.什么是黑白灰 在美术中黑白灰指亮面、灰面、暗面&#xff0c;属于素描的三大面&#xff0c;主要体验一个物体的整体寿光过程。普遍存在于各种艺术和设计领域。黑白灰作品的出现&#x…

C++——static成员

【问题】&#xff1a;定义一个类&#xff0c;计算程序中创建了多少个类对象。 #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; //实现一个类&#xff0c;计算程序中创建出了多少个类对象 class A { public:A(){m;n;}A(const A& a){m…

AIGC之Image2Video(一)| Animate Anyone:从静态图像生成动态视频,可将任意图像角色动画化

近日&#xff0c;阿里发布了Animate Anyone&#xff0c;只需一张人物照片&#xff0c;结合骨骼动画&#xff0c;就能生成人体动画视频。 项目地址&#xff1a;https://humanaigc.github.io/animate-anyone/ 论文地址&#xff1a;https://arxiv.org/pdf/2311.17117.pdf Github…

力扣每日一题:2477. 到达首都的最少油耗(2023-12-05)

力扣每日一题 题目&#xff1a;2477. 到达首都的最少油耗 日期&#xff1a;2023-12-05 用时&#xff1a;34 m 15 s 时间&#xff1a;37ms 内存&#xff1a;84.8MB 思路&#xff1a;分别计算每条路上通过的城市数量&#xff08;数量/座位数&#xff0c;向上取整&#xff09;&…

好用的音乐制作工具 Studio One 6中文 for mac

Studio One 6是一款专业的音乐制作软件&#xff0c;提供了全面而强大的功能&#xff0c;帮助音乐制作人、录音工程师和创作者实现他们的创意。 它的主要特点包括&#xff1a;直观的用户界面&#xff0c;使得操作变得简单易懂&#xff1b;支持多轨录音&#xff0c;允许用户进行…

layui日历插件

layui日历插件: 在已开源的layui日历插件的基础上的改版&#xff08;原版插件地址&#xff1a;https://gitee.com/smalldragen/lay-calender-mark&#xff09;https://gitee.com/tangmaozizi/layui-calendar-plugin.gitjava后台代码并没有把项目完整结构上传上去&#xff0c;因…