前言
之前在 RTX2080ti(显存11GB) / Python3.6 / Ubuntu18.04 / Cuda11.1 / 内存300GB 配置上成功复现过,但考虑到2080ti显存太小所以想迁移到4090上,也便于之后的改进,所以写下此篇以记录。
新环境配置选择如下:RTX4090(显存24GB) / Python3.8 / Ubuntu20.04 / Cuda11.8 / 内存300GB。
一、准备
因为我是在AutoDL上跑的,所以cuda、cudnn的安装没有进行,AutoDL上配置选择如下:
二、环境配置
1.获取项目和数据集
从RandLANet作者github项目仓库把项目拉取下来:https://github.com/QingyongHu/RandLA-Net.git
数据集下载地址:https://semantic-kitti.org/dataset.html#download 下载前三个(80GB、1MB、179MB)
点云文件下载太慢可以找网盘资源,用AutoDL的话可以直接通过阿里云盘上传,更快!
解压完后数据集结构如下(依次解压三个压缩包,无需二次拖放文件):
把dataset文件夹直接放入RandLANet项目文件夹下,这一步就顺利完成。
2.环境搭建
打开终端,创建虚拟环境:
conda create -n randlanet python=3.8
# 创建完后,第一次用可能需要 conda init 一下
conda activate randlanet
修改helper_requirements.txt文件需求,这里踩了很多坑,最终试验出来了一套契合我当前配置的可用版本:
numpy==1.23.5
h5py==3.1.0
cython==0.29.15
open3d==0.16.0
pandas
scikit-learn==0.24.0
scipy
PyYAML
此外还要修改一些地方:
- helper_tool.py文件:
from open3d import linux as open3d
改为:import open3d
- helper_tool.py文件:get_class_weights方法中判断三类数据集名字的
is
改为==
- helper_tool.py文件:
import nearest_neighbors.lib.python.nearest_neighbors as nearest_neighbors
改为:import nearest_neighbors
然后安装tensorflow:
pip install tensorflow==2.12 -i https://pypi.tuna.tsinghua.edu.cn/simple
根据修改好的 helper_requirements.txt 来下包:
pip install -r helper_requirements.txt
编译之前改动:
- compile_op.sh 文件:将
python setup.py install --home="."
改为python setup.py install --prefix=/root/miniconda3/envs/randlanet
这里改成你自己环境的地址
编译:
sh compile_op.sh
三、数据预处理
修改数据集路径:
- 修改utils/data_prepare_semantickitti.py:
22和23行改为(这里只要索引到数据集下sequences文件夹就行,根据自身情况而定):
dataset_path = '/root/autodl-tmp/randla-net/dataset/sequences'
output_path = '/root/autodl-tmp/randla-net/dataset/sequences' + '_' + str(grid_size)
- 修改main_SemanticKITTI.py:
16行改为(跟之前大同小异):
self.dataset_path = '/root/autodl-tmp/randla-net/dataset/sequences_0.06'
然后进行数据预处理:
python utils/data_prepare_semantickitti.py
四、训练
这里根据自己硬件配置在 helper_tool.py 中调整batch_size、num_points、epoch等参数。
python main_SemanticKITTI.py --mode train --gpu 0
顺利跑起来了:
查看gpu占用率,五秒刷新一次:
watch -n 5 nvidia-smi