mmdet3d+waymo dataset v1.3.1环境配置方法与问题

编程入门 行业动态 更新时间:2024-10-28 02:25:10

mmdet3d+waymo dataset v1.3.1<a href=https://www.elefans.com/category/jswz/34/1771403.html style=环境配置方法与问题"/>

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:-    /
show_channel_urls: true

pip换源

一般直接在pip install后面加-i /

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 .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 /

可以加–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 /
pip3 install torch==1.10.2+cu113 torchvision==0.11.3+cu113 torchaudio==0.10.2+cu113 -f .html
pip install mmcv-full==1.4.0 -f .10.2/index.html
pip install mmdet==2.19.1
pip install mmsegmentation==0.14.1
pip install ninja
#wget .17.3.zip
#or git clone and checkout 940e429
#要是git clone不上就先下载到本机再scp到服务器上
cd ~/mmdet3d/
pip install -v -e . -i /
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 /
pip3 install torch==1.11.0+cu113 torchvision==0.12.0+cu113 -f .html
pip install mmcv-full==1.4.8
pip install mmdet
pip install mmsegmentation
pip install ninja
## wget .0.0rc2.zip
#要是git clone不上就先下载到本机再scp到服务器上
cd ~/mmdetecion3d-rc2-waymo-dataonly
pip3 install -e . -i /
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 /
pip3 install torch==1.9.0+cu111 torchvision==0.10.0+cu111 -f .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 .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 .9.0/index.html
pip install mmdet==2.19.0
pip install mmsegmentation==0.14.1
pip install ninja
#wget .17.3.zip
#or git clone and checkout 940e429
cd /home/zhenglt/mmdet3d-node/
pip install -v -e . -i /
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环境配置方法与问题

本文发布于:2024-03-08 06:30:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1720065.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:环境   方法   waymo   mmdet3d   dataset

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!