复现基于Tensorflow的Randla-Net(附踩坑过程)

博客基于的github资源:RandLA-Net-Enhanced

1.数据下载

代码所基于的是 SemanticKITTI公开数据集,官方链接为:SemanticKITTI - A Dataset for LiDAR-based Semantic Scene Understanding

复现基于Tensorflow的Randla-Net(附踩坑过程)_第1张图片

 下载图中所示几个文件,解压后将其中的dataset文件夹拷贝至/data/semantic_kitti/dataset文件夹,选择合并文件夹即可。

由于数据集网站是国外地址,可以找合适的百度网盘资源进行下载。

2.环境配置

2.1 第一次尝试

原作者给出的环境配置方案如下:

conda create -n randlanet python=3.5
source activate randlanet
conda install cudatoolkit=9.0 cudnn=7.3.1
pip install -r helper_requirements.txt
sh compile_op.sh
pip install tensorflow-gpu==1.11

 由于实验室服务器系统为Ubuntu 20.04,CUDA11.4,为避免后续代码因库版本问题报错,一开始考虑按照要求配置相同环境。

在配置cuda环境时,参考了这边文章:在ubuntu上安装多个版本的CUDA,并且可以随时切换

 其他的库按照推荐进行配置,在安装完后进行测试,发现代码能跑!!!

本来想着大功告成,也没有管别的直接就放在那里跑了一晚上,第二天来发现跑的特别慢,测试了一下Tensorflow的GPU可用性,发现果然是在用CPU跑。。。附查看GPU是否可以代码:

import tensorflow as tf

print(tf.test.is_gpu_available())

分析应该是CUDA9.0实际没安装上,还是用的CUDA11.4,因此导致CUDA版本和Tensorflow版本不匹配。

2.2 第二次尝试

试着针对最新的CUDA版本进行配置,具体版本对应关系见链接:CUDA版本与tensorflow版本对应

在安装好python3.7、Tensorflow2.7.0的时候,进行测试,发现GPU可用!

但是在跑代码的时候出现错误:open3d.so文件中函数报错。查看open3d版本发现不是要求的0.3版本,在安装旧版本时发现python3.7不再支持旧版本。因此考虑降版本。

2.3 最终尝试

最后采用了python3.6+tensorflow2.6+CUDA11.4的配置。

由于tensorflow是2.0版本,因此代码中部分位置需要修改:

将main_Semantic3D.py、RandLANet.py、helper_tf_util.py文件中的

import tensorflow as tf

替换为

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

最后成功跑起来了!

复现基于Tensorflow的Randla-Net(附踩坑过程)_第2张图片
 

你可能感兴趣的:(点云处理以及深度学习,tensorflow,python,ubuntu)