原文链接:
https://arxiv.org/pdf/2203.01509v1.pdf
代码链接:
https://github.com/thangvubk/SoftGroup.git
本人小白一枚,只是想记录学习的一个过程,欢迎大家一起讨论
我主要是在自己的本机和服务器进行了环境配置,下面记录一下自己的配置过程以及我遇到的一些问题,以及如何训练公开数据集和训练自己的数据集。
一环境配置
1在本机ubuntu22.04的环境配置
注:这个过程是非常顺利,按照官方文档进行配置就可以了
整个配置过程如下:
1)conda create -n softgroup python=3.7
2)conda activate softgroup
3)下载softgroup代码
git clone https://github.com/thangvubk/SoftGroup.git
(注:这里建议一定要git下载源码,之前用的下载的压缩包,后面运行代码的时候会出现ops.voxel_id这个错误
作者回复就是下载最新版本的代码)
4)conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=10.2 -c pytorch
(注:conda install pytorch cudatoolkit=10.2 -c pytorch不要用官方这个他会自动安装10.2版本对应的最高的pytorch,我当时用里这个后面会出现一些错误,建议使用指定版本的指令)
5)pip install spconv-cu102
6)pip install -r requirements.txt
7)sudo apt-get install libsparsehash-dev
8)python setup.py build_ext develop
----------------------------以上就是在自己的电脑上配置过程
二、服务器上进行环境配置
(和上面步骤前6步都一样,由于服务器没有sudo权限,所以主要说一下怎么在没有sudo权限下或者在windows系统下,如何安装libsparsehash-dev)
7)conda install -c bioconda google-sparsehash
8)python setup.py build_ext develop
(注在这一步上面出现了一些错误)
问题一:ninja错误
解决方法:更换gcc版本,之前在自己本机配置是用的7.5,而服务器是9.3,所以更换了服务器版本从9.3降为7.5,之后又出现了问题二
问题二:编译过程中出现找不到一个哈希表有关的文件
解决办法:是因为google-sparsehash版本问题
找到报错位置/public/fzu_fln/chenhao/yinjunyu/SoftGroup/softgroup/ops/src/datatype/datatype.h文件,对头文件进行修改
将 #include <google/dense_hash_map>换成#include <sparsehash/dense_hash_map>
9)安装成功标志
出现下面这个即代表安装成功
三在公开数据集上面进行训练与测试
我主要是在stpls3d和s3dis上面进行了测试,使用的是官方的预训练权重
1)数据预处理
安装作者的要求将对应数据集处理成指定的格式
2)下载官方预训练权重
3)测试结果及可视化
这里我就只放一下我在stpls3d上面的可视化结果(由于作者没有给这个数据集的可视化代码,我就自己写了一个)
四在自己数据集上面进行训练与测试
我是做了两种格式一种是S3DIS一种是stpls3d。最后我是选择了STPLS3D这种格式,原因是因为同样的数据量使用S3DIS格式会出现任务被杀死,需要多卡运行。
小白第一次写,就是做个分享和学习,写的不好还请见谅。