博客基于的github资源:RandLA-Net-Enhanced
1.数据下载
代码所基于的是 SemanticKITTI公开数据集,官方链接为:SemanticKITTI - A Dataset for LiDAR-based Semantic Scene Understanding
下载图中所示几个文件,解压后将其中的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()
最后成功跑起来了!