BEVFusion复现 (Ubuntu RTX3090)

  • https://github.com/ADLab-AutoDrive/BEVFusion

1.环境安装

我的机器是RTX3090,CUDA11.1

  • 1.创建虚拟环境

    • conda create -n bevfusion python=3.8.3
  • 2.安装PyTorch 和 torchvision

    • pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html
      • 因为RTX3090适配CUDA11以上的版本,更适合Pytorch1.8.0及以上,(BEVFusion要求CUDA 9.2,Pytorch=1.3.1,不能完全安葬github上的),Pytorch1.9及以上的又不适配要求的mmcv和mmdet版本,所以这么完全是按照RTX3090安装环境
  • 3.安装MMCV

    • 方法1:
      • 下载地址:https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.0/index.html
        • cuda版本不一样,把地址中cu111改了就行
          下载mmcv_full-1.4.0-cp38-cp38-manylinux1_x86_64.whl
      • pip install mmcv_full-1.4.0-cp38-cp38-manylinux1_x86_64.whl
    • 方法2:
      • pip install -U openmim -i https://pypi.tuna.tsinghua.edu.cn/simple
      • mim install mmcv-full==1.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
        我是方法1成功的
  • 4.安装mmdet
    在代码中mmdetection-2.11.0文件中编译安装,不需要去下载了

    • cd mmdetection-2.11.0
    • pip install -r requirements/build.txt
    • pip install -v -e .
      如果遇到
error: legacy-install-failure× Encountered error while trying to install package.
╰─> mmpycocotools

说明安装pip install -r requirements/build.txt时安装的Cython版本太高了,降低版本即可:pip install Cython==0.29.36,然后再次pip install -v -e .

  • 5.安装MMDetection3D
    先回到BEVFusion主目录

    • cd ..
    • git clone https://github.com/open-mmlab/mmdetection3d.git
    • cd mmdetection3d
    • pip install -v -e .
  • 6.编译BEVFusion环境

    • cd ..
    • python setup.py develop
  • bug1:

Installed /home/ywj/work/anaconda3/envs/bevfusion/lib/python3.8/site-packages/networkx-2.2-py3.8.egg
error: networkx 2.2 is installed but networkx>=2.8 is required by {'scikit-image'}

pip install scikit-image==0.19.3

  • bug2:
Installed /home/ywj/work/anaconda3/envs/bevfusion/lib/python3.8/site-packages/llvmlite-0.31.0-py3.8-linux-x86_64.egg
error: numpy 1.19.5 is installed but numpy>=1.20.3; python_version < "3.10" is required by {'pandas'}

pip install pandas==1.4.4

  • bug3:
RuntimeError: radix_sort: failed on 1st step: cudaErrorInvalidDevice: invalid device ordinal(BEVFusion)

原因:torch版本不对
解决办法:显卡是3090,最后安装的是python==3.7,pytorch=1.9.0,cuda=11.1

  • 其他安装包不兼容的问题:
    直接按照提示安装低版本的就行

2.数据准备

  • nuScenes:
    • python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes

可能出现bug :说明MMCV版本没装对,装的是cuda10.1的版本,重新安装

ImportError: libcudart.so.10.1: cannot open shared object file: No such file or directory

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

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

相关文章

maven学习总结

众所周知&#xff0c;maven的两大作用是项目构建和依赖管理&#xff0c;除此之外&#xff0c;基于多模块项目&#xff0c;maven常用的功能还有模块化管理。 项目构建 Maven是一个构建工具&#xff0c;可以根据项目中的配置文件&#xff08;pom.xml&#xff09;来自动执行项目…

2023年Java核心技术第十一篇(篇篇万字精讲)

目录 二十一 . Java并发包提供了哪些并发工具类 21.1 典型回答 21.1 .1 CountDownLatch 21.1 .2 CyclicBarrier 21.1 .2.1 例子&#xff1a; 21.1 .2.2 输出结果&#xff1a; 21.1.2.3 详细解释&#xff1a;屏障点 21.1.3 Semaphore 21.1.3.1 使用 Semaphore例子&#xff1…

ros::NodeHandle用途用法

在ROS(Robot Operating System)中,ros::NodeHandle 是一个核心类,用于与ROS系统进行交互。几乎所有的ROS节点功能,例如发布或订阅主题、调用或提供服务,都需要使用到 ros::NodeHandle。 用途: 与ROS系统交互:ros::NodeHandle 是节点与ROS计算图系统进行通讯的主要接口…

GCC和G++的区别

GCC和G是我们在学习C/C并且进行编译的过程中&#xff0c;必会的知识点&#xff0c;今天小雷雷针对这个聊几句&#xff0c;嗯哼哼~ &#x1f449;&#x1f449;&#x1f449;gcc和g都是C/C的编译器&#xff0c;但是它们之间存在一些区别 GCC和G的渊源 GCC&#xff08;GNU Comp…

【C语言进阶(10)】通讯录管理系统

文章目录 Ⅰ 系统功能介绍Ⅱ 系统前期准备⒈菜单功能⒉结构体设计⒊通讯录初始化 Ⅲ 系统功能实现⒈添加联系人⒉删除联系人⒊查找联系人⒋修改联系人⒌显示联系人⒍排序联系人⒎清空联系人 Ⅳ 完整代码展示⒈test.c⒉contact.h⒊contact.c Ⅰ 系统功能介绍 系统中需要实现的功…

matlab 计算点云协方差矩阵

目录 一、概述1、算法概述2、主要函数二、代码示例三、结果展示四、参数解析输入参数输出参数五、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述

java 可变参数

基本语法 可变参数的语法很简单&#xff0c;基本格式如下&#xff1a; 方法名(参数类型 ...)举例 public void printName(String... names) {int count names.length;for (int i 0; i < names.length; i) {System.out.println(names[i]);} }

气传导蓝牙耳机好不好?推荐几款不错的气传导耳机

​在众多的气传导耳机中&#xff0c;如何选择一款适合自己的气传导耳机呢&#xff1f;这需要考虑到自己的需求和预算&#xff0c;同时也需要了解不同品牌和型号的产品特点和优缺点。下面我来推荐几款非常不错的气传导耳机给大家参考&#xff0c;希望大家都能寻找到心仪那款。 …

【线性代数】矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇)

矩阵求导的本质与分子布局、分母布局的本质&#xff08;矩阵求导——本质篇&#xff09; 说在前面一. 函数与标量、向量、矩阵二. 矩阵求导的本质三. 矩阵求导结果的布局四. 分子布局、分母布局的本质五. 向量变元的实值标量函数 说在前面 我将严谨地说明矩阵求导的本质与分子布…

centos下配置SFTP且限制用户访问目录

一、SFTP使用场景 ftp是大多数网站的文件传输选择工具,但ftp并不是非常安全,并且在centos上搭建的vsftpd也非常的不稳定,偶尔会出现权限问题,例如500、或是账号密码不正确等等。 而SFTP是基于默认的22端口,是ssh内含的协议,只要启动了sshd就可以使用。 建议:更高的效率…

[ES]mac安装es、kibana、ik分词器

一、安装es和kibana 1、创建一个网络&#xff0c;网络内的框架(eskibana)互联 docker network create es-net 2、下载es和kibana docker pull elasticsearch:7.12.1 docker pull kibana:7.12.1 3、运行docker命令部署单点eskibana&#xff08;用来操作es&#xff09; doc…

leetcode分类刷题:字符串及单词翻转

1、本文此次总结的题型“leetcode分类刷题&#xff1a;字符串及单词翻转”较为简单&#xff0c;是双指针法在字符串及单词翻转类题型中的应用 2、如果单词翻转类题型加了O(1)空间复杂度的要求&#xff0c;算法思路会变得稍微复杂一点 344. 反转字符串 该题为字符串翻转的基础题…

ConsoleApplication17_2项目免杀(Fiber+VEH Hook Load)

加载方式FiberVEH Hook Load Fiber是纤程免杀&#xff0c;VEH是异常报错&#xff0c;hook使用detours来hook VirtualAlloc和sleep&#xff0c;通过异常报错调用实现主动hook 纤程Fiber的概念&#xff1a;纤程是比线程的更小的一个运行单位。可以把一个线程拆分成多个纤程&#…

InVEST模型+SolVES模型教程

详情点击公众号链接&#xff1a;基于当量因子法、InVEST、SolVES模型等多技术融合在生态系统服务功能社会价值评估中的应用及论文写作、拓展分析 前言 生态系统服务是人类从自然界中获得的直接或间接惠益&#xff0c;可分为供给服务、文化服务、调节服务和支持服务4类&#xf…

基于Ubuntu坏境下的Suricata坏境搭建

目录 Suricata环境安装 第一步、在 Ubuntu 端点安装 Suricata 1、加入Suricata源 2、更新安装包 3、下载SuricataSuricata 第二步、下载并提取新兴威胁 Suricata 规则集 1、在tmp文件夹下载 Suricata 规则集 如果发现未安装curl&#xff0c;使用apt安装即可&#xff1a…

打造高权重店铺的秘密,详解Shopee平台权重评估机制(测评补单)

很多虾皮卖家经常提到的"权重"是指商品或店铺在Shopee平台上的重要性程度。权重评估了商品或店铺是否符合用户需求&#xff0c;并且能否促进订单转化率&#xff0c;为平台带来收益。说白了权重就是给商品和店铺打分的机制&#xff0c;得分越高&#xff0c;权重越高&a…

简单shell脚本的编写

文章目录 简单使用shell脚本参数判断整数的比较运算符字符串的比较运算shell脚本流程控制shell脚本循环for循环批量添加用户批量ping IP地址检测同一局域网&#xff0c;多台主机存活情况检测同一局域网&#xff0c;多台主机存活情况多线程检测主机存活情况 while循环case选择语…

Python中处理Excel文件的常见问题与技巧

在数据分析和办公自动化领域&#xff0c;Excel是一种广泛使用的工具。本文将介绍如何利用Python来处理Excel文件时可能遇到的常见问题&#xff0c;并分享一些实用技巧。 1. 安装必要库 - 使用pip或conda安装openpyxl、pandas等第三方库&#xff1b; – 确保所选版本兼容性以及…

Java之SpringCloud Alibaba【五】【微服务 Sentinel整合openfeign进行降级】

一、Sentinel整合openfeign 1、复制一下order-openfeign项目&#xff08;创建order-openfeign-sentinel&#xff09; 然后在stock-nacos当中编写对应的接口 RequestMapping("/reduct2")public String reduct2(){int a 1/0;System.out.println("扣减库存"…

单片机学习-什么是Flash?什么是RAM?什么是ROM?

什么是Flash&#xff1f; Flash 存储器&#xff08;FLASH EEPROM&#xff09;又称闪存&#xff0c;快闪。 它是EEPROM的一种。它结合了ROM和RAM的长处。不仅具备电子可擦除可编辑&#xff08;EEPROM&#xff09;的性能&#xff0c;还不会断电丢失数据同时可以快速读取数据。它于…