官网的教程说是Step By Step,但是实际上我按照步骤安装下来运行不了(BEVFormer GitHub地址)。主要是安装后关于包依赖产生的某些错误,特别是安装nuscenes-devkit没有在步骤中列出来,后面就不好解决某些包的版本依赖了。参考一些博客以及官方安装教程后(blog1,blog2),安装过程如下:
P.S. cuda版本是11.3,安装pytorch版本要对应,以及后面安装包也要对应这个版本,查看cuda版本(实际上应该说是Cuda Toolkit的版本)可以使用命令
nvcc -V
什么是CUDA?什么是大家在安装PyTorch过程中所谓的CUDA版本?nvcc命令和nvidia-smi输出的版本号有何区别?如果你有这类似的疑惑,可以看看这篇文章(关于 CUDA 的常识(以及 PyG 的安装)),解释得比较清楚也比较好懂。解决完你的环境问题,接下来就正式安装。
1.创建虚拟环境bevformer,如果下载慢,anaconda添加镜像源网上教程实在太多了,不贴链接,自己随便搜搜就有
conda create -n bevformer python=3.8 -y
conda activate bevformer
2.安装pytorch的GPU版本,在这里,我选择了离线安装,在线安装实在太慢,如果你想在线安装可以使用以下两种命令
(1)pip 安装(注意,这里-f指定了官方地址去查找对应安装包)
pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html
(2) conda 安装(没有改anaconda源的话,也可以在后面添加-c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/指定为清华源)
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.3
不过,我仍然是推荐直接下载whl,然后安装,很方便,也很灵活,whl官方的地址是whl的下载地址,其实就是到pip安装命令指定的那个地址自己把whl文件下回来然后自己安装。pip离线安装包很简单,就是pip install whl文件地址,这里主要讲讲怎么找到对应版本的whl,进入链接后会发现有些torch除了版本还会有cu113的字样,这就表示这是cuda 11.3版本的pytorch,然后后面还会有cp38或者cp39,这表示python版本分别是3.8,3.9,linux,win表示你的系统,根据自己需求下载即可,本文选择python3.8,cuda 11.3,Linux的文件,如下
(3)使用如下命令安装(当前目录下存放了三个whl文件)
pip install torch-1.10.0+cu113-cp38-cp38-linux_x86_64.whl torchvision-0.11.0+cu113-cp38-cp38-linux_x86_64.whl torchaudio-0.10.0+cu113-cp38-cp38-linux_x86_64.whl
3.安装mmcv-full(注意链接里的cu113是和我们的版本对应的)
pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.html
4.安装mmdet mmsegmentation
pip install mmdet==2.14.0 mmsegmentation==0.14.1
5.安装一些代码中用到的依赖包(特别是nuscenes-devkit,官方步骤没有提到,但是代码确实用到了)
pip install ninja tensorboard==2.13.0 nuscenes-devkit==1.1.10 scikit-image==0.19.0 lyft-dataset-sdk==0.0.8
6.改变numpy、pandas、setuptools版本,安装llvmlite
pip install numpy==1.19.5 pandas==1.4.4 llvmlite==0.31.0 setuptools==59.5.0
7.重头戏,安装mmdet3d,GitHub访问太慢可以手动去下载tags里面v0.17.1 版本的代码,然后直接执行最后一步python setup.py install就行。
cd BEVFormer
git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
git checkout v0.17.1 # Other versions may not be compatible.
python setup.py install
8.安装Detectron2,Timm
pip install einops fvcore seaborn iopath==0.1.9 timm==0.6.13 typing-extensions==4.5.0 pylint ipython==8.12 numba==0.48.0 scikit-image==0.19.3 yapf==0.40.1
# 安装 Detectron2,网卡会中断可以选择手动下载手动安装或者多试几次
python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'
到这里环境安装就结束了。想使用nuscenes的mini数据集对环境进行测试可以参考这篇文章后半部分BEVFormer代码复现