复现DeepInteraction

一、安装环境

下面列出几个比较重要的版本:

显卡:4090&2080ti

CUDA=11.1

python=3.8

torch=1.9.0+cu111

torchvision=0.10.0+cu111

spconv-cu111=2.1.25

numpy=1.21.0

numba=0.48.0

mmdet=2.25.0

mmdet3d=0.17.1

mmcv-full=1.3.18

安装过程基本遵循MMDET3D,就是注意一些安装包版本:

Ubuntu22.04安装mmdet 2.25.1+ mmdet3d 1.0.0rc6_空持千百偈,不如吃茶去的博客-CSDN博客简单记录一下mmdet和mmdet3d安装过程。https://blog.csdn.net/weixin_44013732/article/details/130675061


二、环境搭建

 1、配置mmdet3d环境

(1)创建虚拟环境(无需安装包,Anconda自动安装python):

conda create -n deepinteraction python=3.8

(2)激活环境

 conda activate deepinteraction 

 (3)安装torch、torchvision

安装说明:推荐本地安装,否则pip会不小心安装成cpu版本。

①下载文件

链接: 

百度云:找到以下文件夹,放着torch、torchvision安装包

②安装

使用pip指令实现本地安装

pip install torch-1.9.0+cu111-cp38-cp38-linux_x86_64.whl torchvision-0.10.0+cu111-cp38-cp38-linux_x86_64.whl

③测试

先输入python进入环境,输入以下指令:

import torch    # 如正常则静默
torch.__version__ #查看torch版本
import torchvision
torchvision.__version__ #查看torchvision版本
torch.cuda.is_available() #正常的话返回“True”
a = torch.Tensor([1.])    # 如正常则静默
a.cuda()    # 如正常则返回"tensor([ 1.], device='cuda:0')"
from torch.backends import cudnn # 如正常则静默
cudnn.is_acceptable(a.cuda())    # 如正常则返回 "True"

显示可以正常使用:

  ④官方下载网站

如果不想用百度云,下面是官方下载网站:

torch下载网站:https://download.pytorch.org/whl/torch_stable.html

 torch 1.9.0+cu111:https://download.pytorch.org/whl/cu111/torch-1.9.0%2Bcu111-cp38-cp38-linux_x86_64.whl

torchvision 0.10.0+cu111:https://download.pytorch.org/whl/cu111/torchvision-0.10.0%2Bcu111-cp38-cp38-linux_x86_64.whl 


 (4)安装mmcv-full 1.3.18

①pip安装

pip install mmcv-full==1.3.18 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html

 这里不能只用pip install mmcv-full指令去安装,后面需要加上自己cuda信息和torch信息。

 (5)安装mmsegmentation

安装说明:仅mmdet3d需要安装。

①pip 安装

pip install mmsegmentation==0.14.1

②本地安装

进入到/mmsegmentation-master文件夹下,执行:

pip install -r requirements.txt

python setup.py develop

 (6)安装mmdet

安装说明:如果你想运行mmdet而非mmdet3d,推荐本地安装,方便后面跑数据

①pip安装mmdet

 pip install mmdet==2.14.0

②本地安装mmdet

 进入到/mmdetection文件夹下,执行:

pip install -r requirements.txt

python setup.py develop

 (7)安装mmdet3d

①官方安装指令

git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
git checkout v0.17.1
python setup.py install

②本地安装

进入到/mmdetection3d-master文件夹下

执行:

pip install -r requirements

python setup.py develop

(8)安装detectron2

用到了detectron2里面的Dynamic Conv模块,指令如下:

python -m pip install detectron2 -f \
  https://dl.fbaipublicfiles.com/detectron2/wheels/cu111/torch1.9/index.html

2、下载并配置数据集

 官网方法:

Dataset Preparation — MMDetection3D 1.2.0 documentationicon-default.png?t=N7T8https://mmdetection3d.readthedocs.io/en/latest/user_guides/dataset_prepare.html通过将数据集解压到一个文件夹里,然后执行指令:

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

转化后的结果如下:

 

3、 预训练权重

将预训练权重拷贝到pretrained/文件夹中:

 三、Train & Test

# train with 8 GPUs
tools/dist_train.sh projects/configs/nuscenes/Fusion_0075_refactor.py 8
# test with 8 GPUs
tools/dist_test.sh projects/configs/nuscenes/Fusion_0075_refactor.py ${CHECKPOINT_FILE} 8 --eval=bbox

根据自己的需求,将GPU个数进行更改。

四、遇到问题

1、ModuleNotFoundError: No module named 'numba.errors'

 解决方法:numba版本太高了,需要安装至0.48.0:

pip install numba==0.48.0


2、RuntimeError: Address already in use xxx

问题描述:端口已被占用

解决方案:

在/home/xd/xyy/DeepInteraction-main/tools/dist_train.sh文件中


可以指定终端指令的端口号,在运行终端指令后面加上--port 12345,端口号可以任意指定,五位数就可以。

参考:解决方案:炼丹师养成计划 Pytorch+DeepLearning遇见的各种报错与踩坑避坑记录(四)_store = tcpstore(master_addr, master_port, world_s_中杯可乐多加冰的博客-CSDN博客


 3、KeyError: 'SwinTransformer is already registered in models'

解决方法:就是把/DeepInteraction-main/projects/mmdet3d_plugin/__init__.py中的from .swin_transformer import SwinTransformer注释了

 参考: 

FastBEV复现 Ubuntu_一只糊涂虫儿的博客-CSDN博客


  4、from numba.errors import NumbaPerformanceWarning 

解决方法:按照要求安装numba==1.48 


5、AttributeError: 'ConfigDict' object has no attribute 'device'

解决方法:

在tools/train.py的meta['config'] = cfg.pretty_text下面添加如下代码:

cfg.device='cuda'

 参考:

AttributeError: ‘ConfigDict‘ object has no attribute ‘device‘_attributeerror: 'config' object has no attribute '_糖炒Li儿的博客-CSDN博客

6、 mmcv/_ext.cpython-38-x86_64-linux-gnu.so: undefined symbol: _Z27points_in_boxes_cpu_forwardN2at6TensorES0_S0_

解决方法:

pip install mmcv-full==1.3.18 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html
 

这里不能只用pip install mmcv-full指令去安装,后面需要加上自己cuda信息和torch信息。 

猜你喜欢

转载自blog.csdn.net/weixin_44013732/article/details/132626064