mmdet3d+waymo dataset v1.3.1环境配置方法与问题
Posted ZLTJohn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mmdet3d+waymo dataset v1.3.1环境配置方法与问题相关的知识,希望对你有一定的参考价值。
实验室里不同服务器集群的环境稍有差别,而且第一次配置mmdet3d,遇到了不少坑。文中内容主要为自己备忘用。takeaway是后面的三个install.sh;前面写一下一些坑。
anaconda 安装与换源
服务器上没有我管理员权限,底层环境共享,所以最好都用conda安装包,不要apt get
国内连conda 和 pip太慢了,特别是上海的机器,网不好的时候pip经常丢失连接。
下载conda:Anaconda官网下载anaconda_xxx.sh
显示conda源配置:conda config --set show_channel_urls yes
.condarc 放入清华源
不太好用,但胜在速度快:
ssl_verify: true
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
show_channel_urls: true
pip换源
一般直接在pip install后面加-i https://pypi.tuna.tsinghua.edu.cn/simple/
conda env 配置
新建一个conda环境,用python3.7和3.8应该都行。
conda create -n open-mmlab python=3.7
conda activate open-mmlab
pytorch与cudatoolkit
如果用pytorch官网的conda装的话,就要额外装cudatoolkit,如果按他的pip装感觉就不用,比如:
pip install torch==1.10.2+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
别忘了安装torchvision~
之后mmdet或者waymo里运行的时候会有cuda的warning,其实没事,如果错了一般都是别的问题。
waymo-open-dataset安装
可以按mmdet官方装,但我要用v1.3.1的特性,所以得装新版的配套库1.4.7。
pip install waymo-open-dataset-tf-2-6-0==1.4.7 -i https://pypi.tuna.tsinghua.edu.cn/simple/
可以加–user,这样不装到conda环境里了。
注意到1.4.7的pip包里是缺少了camera/ops/py_camera_model_ops.py的,安装好之后,在waymo_open_dataset/third_party/camera/ops/里能找到,直接复制到包安装目录即可,一般是
.local/lib/python3.7/site-packages/waymo_open_dataset/camera/ops
或者
anaconda3/envs/open-mmlab/lib/python3.7/site-packages/waymo_open_dataset/camera/ops
跟waymo提了issue说1.4.7有问题,他们跟我说修好了发了1.4.8,结果pip装dependency的时候又有bug…,找不到我环境里的openexr啥的。还是装1.4.7好了。
最好是先装waymo再装mmdet,这样能先把tensorflow装进来。另外可能需要安装protobuf-3.20,因为安装其他包过程中可能依赖了更新版的protobuf。
如果要编译出waymo的evaluation tool,以供模型进行evaluation,那么还需要去waymo的github repo里clone一份对应版本的project,然后用bazel编译。bazel的安装就直接conda install bazel
即可。
open-mmlab系列安装
mmdet3d 的官方教程getting_started也挺好。但是我第一次装傻乎乎,装了他的测试版v1.0.0rc2,结果一堆bug _(¦3」∠)_
要安装mmcv,mmdet,mmsegmentation,ninja,然后才能装mmdet3d
在上海的node系列机器上,glibc版本比较旧,pytorch1.10太新了,得用旧版的,用旧版的mmcv-1.5.1装不进去,mmcv-1.4.8可以用。
我使用mmdet3d v1.0.0rc2来处理waymo dataset,具体方法见上一篇文章。但是发现最新版的training和evaluation都有问题,连官方给的fcos3d都训不对,loss一直降不下去,所以使用了稳定的0.17.3。
除了mmdet3d,其他直接pip即可,mmdet3d要自己去git clone对应版本。
具体mmlab系列库版本的对应表,可以去官网查,下面给出三个能跑的配置,每个的torch等版本略有不同,老机子用旧一点的torch会更好。
如果要用rc2来train或者test,可能会遇到pytorch多线程的error,解决办法是在main函数开头加上torch.multiprocessing.set_start_method(‘fork’)
install_mmdet3d_0_17_3.sh
# conda activate open-mmlab
pip install waymo-open-dataset-tf-2-6-0==1.4.7 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip3 install torch==1.10.2+cu113 torchvision==0.11.3+cu113 torchaudio==0.10.2+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.2/index.html
pip install mmdet==2.19.1
pip install mmsegmentation==0.14.1
pip install ninja
#wget https://github.com/open-mmlab/mmdetection3d/archive/refs/tags/v0.17.3.zip
#or git clone and checkout 940e429
#要是git clone不上就先下载到本机再scp到服务器上
cd ~/mmdet3d/
pip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install protobuf==3.20
conda install bazel
# don't forget to copy py_camera_ops.oy to waymo dataset!
install_mmdet3d_rc2.sh
# conda activate open-mmlab
source ~/anaconda3/bin/activate
conda activate mmlab-rc2
pip install waymo-open-dataset-tf-2-6-0==1.4.7 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip3 install torch==1.11.0+cu113 torchvision==0.12.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
pip install mmcv-full==1.4.8
pip install mmdet
pip install mmsegmentation
pip install ninja
## wget https://github.com/open-mmlab/mmdetection3d/archive/refs/tags/v1.0.0rc2.zip
#要是git clone不上就先下载到本机再scp到服务器上
cd ~/mmdetecion3d-rc2-waymo-dataonly
pip3 install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install protobuf==3.20
conda install bazel
# don't forget to copy py_camera_ops.oy to waymo dataset!
install_mmdet3d_node.sh
lab里node系列服务器集群能用的环境,由于node没有预装cudatoolkit,也就没有mmcv需要的$CUDA_HOME,所以要conda装一个,然后配置CUDA_HOME。但我装cuda11.1的时候不需要配置,cuda11.3才需要。
这个环境的安装必须在node系列机器上进行,因为系统库比较旧,在这里安装,mmcv编译的时候依赖的系统库就比较旧;如果在gpu系列机器上安装,会导致系统库依赖版本过新,无法在node机器上跑。
# conda activate open-mmlab
pip install waymo-open-dataset-tf-2-6-0==1.4.7 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip3 install torch==1.9.0+cu111 torchvision==0.10.0+cu111 -f https://download.pytorch.org/whl/cu111/torch_stable.html
conda install cudatoolkit=11.1
# maybe you need to set $CUDA_HOME. follow any instructions in google
pip install mmcv-full==1.3.9 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html
#in order not to depend on newer version of GLIBC, you should do the installation on nodeXX machines
#pip --no-cache-dir install mmcv-full==1.3.9 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html
pip install mmdet==2.19.0
pip install mmsegmentation==0.14.1
pip install ninja
#wget https://github.com/open-mmlab/mmdetection3d/archive/refs/tags/v0.17.3.zip
#or git clone and checkout 940e429
cd /home/zhenglt/mmdet3d-node/
pip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install protobuf==3.20
conda install bazel
# don't forget to copy py_camera_ops.oy to waymo dataset!
上海与北京服务器的代码同步
现在采取北京机器作为git origin,设置上海机器的remote为北京来实现两组服务器的代码同步。
一些必要命令:
git clone ssh://$ServerName/~/mmdet3d
git remote add origin ssh://$ServerName/~/mmdet3d
在北京机器上需要修改.git/config:
[receive]
denyCurrentBranch = updateInstead
misc
如果用清华源conda来下载pytorch,需要到清华源网址查看版本对应,不然容易把pytorch下载成cpu版,给出一个example:
conda install pytorch=1.11.0 cudatoolkit=11.3
装torchvision:conda install torchvision -c pytorch
好像清华源的包依赖分析不太行,还是pytorch源好些。但国内连pytorch源太慢了,还是pip吧…
以上是关于mmdet3d+waymo dataset v1.3.1环境配置方法与问题的主要内容,如果未能解决你的问题,请参考以下文章
mmdet3d纯视觉baseline之数据准备:处理waymo dataset v1.3.1
mmdet3d+waymo dataset v1.3.1环境配置方法与问题
mmdet3d+waymo dataset v1.3.1环境配置方法与问题