win10复现maptr(踩坑记录)
最近开源了一篇基于环视视觉的矢量化地图构建的文章,这里记录一下复现时遇到的问题:
一、环境配置(这里默认已经配置好显卡驱动和cuda)
1)、使用conda构建python环境
conda create -n maptr python=3.8 -y
conda activate maptr
2)、安装pytorch
pip install torch1.9.1+cu111 torchvision0.10.1+cu111 torchaudio0.9.1 -f https://download.pytorch.org/whl/torch_stable.html
3)、安装gcc
conda install -c omgarcia gcc-5 # gcc-6.2
4)、安装mmcv-full(版本需要按照官方提供的版本要求)
pip install mmcv-full1.4.0
5)、安装mmet
pip install mmdet2.14.0
pip install mmsegmentation0.14.1
6)、安装mm3d
cd /path/to/MapTR/mmdetection3d
python setup.py develop
7)、安装gkt(但是windows不能直接使用会报错)
cd /path/to/MapTR/projects/mmdet3d_plugin/maptr/modules/ops/geometric_kernel_attn
python setup.py build install
8)、安装其他依赖
cd /path/to/MapTR
pip install -r requirement.txt
9)、下载resnet预训练权重
cd /path/to/MapTR
mkdir ckpts(官方为linux系统win需要手动创建文件夹)
cd ckpts
wget https://download.pytorch.org/models/resnet50-19c8e357.pth
wget https://download.pytorch.org/models/resnet18-f37072fd.pth
二、适配本地gpu
这里我先注释了cuda版本的gkt
修改配置文件中的预训练权重路径
修改为普通的归一化层,原始的不能用于单个gpu
修改workers_per_gpu = 0
修改为自己的路径
三、下载数据集(目前开源代码可以支持nuscenes和av2但是我安装av2的时候发现numpy版本和mmdetection3d有冲突,也在开源项目里面看到有人问这个问题,但是作者还没有回复),我这里下载的是nuscenes的mini版数据
https://www.nuscenes.org/nuscenes
然后按照官方的数据组织方式进行存放,其中.pkl文件需要按照官方教程运行python脚本获得。
注意路径要替换成自己的
python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes --version v1.0-mini --canbus ./data
然后就可以启动train.py进行训练了(我没有使用官方提供的sh脚本,主要是因为对分布式训练不太熟悉)
(记得切换到相应的目录下)
python train.py D:\MapTR-main\MapTR-main\projects\configs\maptr\maptr_nano_r18_110e.py --gpus 1 --no-validate
等待结果就好了
官方地址
https://github.com/hustvl/MapTR