AI人工智能-点云分割算法项目之pointsift环境搭建和编译文档【多测师】

服务器的IP地址和用户名密码
服务器IP地址:47.112.147.126  
用户名:root
密码:XXXXXXXXX

一) 开通阿里云后首先查看是否有cuda和cudnn环境
1、查看cuda版本? cat /usr/local/cuda/version.txt 2、查看cudnn版本? cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR ­A 2 3、跑我们的模型代码:看如下这个文件放在哪个目录下 python3.6 ~/pointcloud/pointSIFT­ master/train_and_eval_scannet.py

二)上传数据
1.把模型的zip文件和我们自己的scannet_train.pickle和 scannet_test.pickle文件上传到服务器的根目录: 下面红色部分的路径改为自己的路径 scp ­r /Users/wangzhiqiang/Desktop/pointcloud/pointSIFT­ master.zip root@47.112.98.141:/ 2.也可以用shell和xftp上传速度会比这个快、按下图连接服务器

3.上传之后apt install unzip   然后解压:unzip pointSIFT­master.zip
4.把epoch改为100、batch_size改为8或者16个 NUM_CLASS到时候要改为
3或者4、因为我们是分3类
5.如果batch_size改为32就会导致如下的报错:

三)接下来的任务安排:
任务一:
看下模型的输出、就是预测的、点云和label  的数组在哪里(是哪个函数的输
出) == 已确定evaluate_one_epoch这个函数可以完成
任务二:
1、需要熟悉网络结构   ­­ 正在进行当中
2、了解模型初调阶段,loss值下降到什么程度认为是收敛的,了解自己的数据
集npoint 设置
2、模型网络的输入和输出,原理,可以调整的参数
3、把代码自带数据集跑 16batch_size,50个epoch、看loss下降
任务三:test.py
这个测试集,就好比我们现在验证模型用的scannet_data_pointnet2数据
集,  真实数据集是我提供的las数据集。
这个"测试集",和"训练集和测试集"里面测试集有区别。   我说的测试集,是评
价训练好的模型效果的
test代码一般会返回1个评价指标  IOU、accuracy 之类。   它这个说的"测试",是说是测试用的数据,不是正式数据。

四)项目部署之修改配置文件和编译 一、先查看TensorFlow和Python的路径 (rapids) root@iZwz9ios3psx4j85ire2ypZ:~/pointcloud/pointSIFT­ master/tf_utils/tf_ops# find ~/ ­name tensorflow* /root/anaconda3/envs/rapids/lib/python3.6/site­packages/tensorflow 如下为Python的路径: (rapids) root@iZwz9ios3psx4j85ire2ypZ:~/pointcloud/pointSIFT­ master/tf_utils/tf_ops/grouping# which python3.6 /root/anaconda3/envs/rapids/bin/python3.6

二、进入~/pointcloud/pointSIFT­
master/tf_utils/tf_ops/grouping改配置文件:
需要改4个地方的路径:都需要生成so文件
1、(rapids) root@iZwz9ios3psx4j85ire2ypZ:~/pointcloud/pointSIFT­
master/tf_utils/tf_ops/grouping# vim tf_grouping_compile.sh
把之前tf_grouping_compile.sh文件中的内容删除把如下内容复制进去
#/bin/bash
nvcc tf_grouping_g.cu ­o tf_grouping_g.cu.o ­c ­O2 ­
DGOOGLE_CUDA=1 ­x cu ­Xcompiler ­fPIC
# TF1.2
#g++ ­std=c++11 tf_grouping.cpp tf_grouping_g.cu.o ­o
tf_grouping_so.so ­shared ­fPIC ­I /usr/local/lib/python2.7/dist­
packages/tensorflow/include ­I /usr/local/cuda­8.0/include ­lcudart ­
L /usr/local/cuda­8.0/lib64/ ­O2 ­D_GLIBCXX_USE_CXX11_ABI=0
# TF1.4
g++ ­std=c++11 tf_grouping.cpp tf_grouping_g.cu.o ­o
tf_grouping_so.so ­shared ­fPIC ­I
/root/anaconda3/envs/rapids/lib/python3.6/site­
packages/tensorflow/include ­I /usr/local/cuda­10.0/include ­I
/home/jmydurant/a/root/anaconda3/envs/rapids/lib/python3.6/site­
packages/tensorflow/include/external/nsync/public ­lcudart ­L
/usr/local/cuda­10.0/lib64/ ­
L/root/anaconda3/envs/rapids/lib/python3.6/site­
packages/tensorflow ­ltensorflow_framework ­O2 ­
D_GLIBCXX_USE_CXX11_ABI=0
修改好之后输入内容编译:
如果输入下面内容没有反应赋予执行的权限:chmod +x
tf_grouping_compile.sh
(rapids) root@iZwz9ios3psx4j85ire2ypZ:~/pointcloud/pointSIFT­
master/tf_utils/tf_ops/grouping# ./tf_grouping_compile.sh
配置一下生成:tf_grouping_so.so*文件即可
如下的3个文件都和当前配置文件方式一致

2、vim tf_interpolate_compile.sh也是默认把TensorFlow的路径改 一下 把之前tf_interpolate_compile.sh文件中的内容删除把如下内容复制进去 # TF1.2 #g++ ­std=c++11 tf_interpolate.cpp ­o tf_interpolate_so.so ­shared ­fPIC ­I /usr/local/lib/python2.7/dist­packages/tensorflow/include ­I /usr/local/cuda­8.0/include ­lcudart ­L /usr/local/cuda­8.0/lib64/ ­O2 ­D_GLIBCXX_USE_CXX11_ABI=0 # TF1.4 g++ ­std=c++11 tf_interpolate.cpp ­o tf_interpolate_so.so ­shared ­ fPIC ­I /root/anaconda3/envs/rapids/lib/python3.6/site­ packages/tensorflow/include ­I /usr/local/cuda­10.0/include ­I /root/anaconda3/envs/rapids/lib/python3.6/site­ packages/tensorflow/include/external/nsync/public ­lcudart ­L /usr/local/cuda­10.0/lib64/ ­ L/root/anaconda3/envs/rapids/lib/python3.6/site­ packages/tensorflow ­ltensorflow_framework ­O2 ­ D_GLIBCXX_USE_CXX11_ABI=0 修改好之后输入内容编译./tf_interpolate_compile.sh 能生成.so文件即可

3、vim tf_pointSIFT_compile.sh   把之前tf_pointSIFT_compile.sh文件中的内容删除把如下内容复制进去 #/bin/bash nvcc pointSIFT.cu ­o pointSIFT_g.cu.o ­c ­O2 ­DGOOGLE_CUDA=1 ­ x cu ­Xcompiler ­fPIC # TF1.4 g++ ­std=c++11 main.cpp pointSIFT_g.cu.o ­o tf_pointSIFT_so.so ­ shared ­fPIC ­I /root/anaconda3/envs/rapids/lib/python3.6/site­ packages/tensorflow/include ­I /usr/local/cuda­10.0/include ­I /root/anaconda3/envs/rapids/lib/python3.6/site­ packages/tensorflow/include/external/nsync/public ­lcudart ­L /usr/local/cuda­10.0/lib64/ ­ L/root/anaconda3/envs/rapids/lib/python3.6/site­ packages/tensorflow ­ltensorflow_framework ­O2 ­ D_GLIBCXX_USE_CXX11_ABI=0 把上面的内容复制进去后保存然后 输入内容编译./tf_pointSIFT_compile.sh 能生成.so文件即可

4、vim tf_sampling_compile.sh   把之前tf_sampling_compile.sh文件中的内容删除把如下内容复制进去 #/bin/bash nvcc tf_sampling_g.cu ­o tf_sampling_g.cu.o ­c ­O2 ­ DGOOGLE_CUDA=1 ­x cu ­Xcompiler ­fPIC # TF1.2 #g++ ­std=c++11 tf_sampling.cpp tf_sampling_g.cu.o ­o tf_sampling_so.so ­shared ­fPIC ­I /usr/local/lib/python2.7/dist­ packages/tensorflow/include ­I /usr/local/cuda­8.0/include ­lcudart ­ L /usr/local/cuda­8.0/lib64/ ­O2 ­D_GLIBCXX_USE_CXX11_ABI=0 # TF1.4 g++ ­std=c++11 tf_sampling.cpp tf_sampling_g.cu.o ­o tf_sampling_so.so ­shared ­fPIC ­I /root/anaconda3/envs/rapids/lib/python3.6/site­ packages/tensorflow/include ­I /usr/local/cuda­10.0/include ­I /root/anaconda3/envs/rapids/lib/python3.6/site­ packages/tensorflow/include/external/nsync/public ­lcudart ­L /usr/local/cuda­10.0/lib64/ ­ L/root/anaconda3/envs/rapids/lib/python3.6/site­ packages/tensorflow ­ltensorflow_framework ­O2 ­ D_GLIBCXX_USE_CXX11_ABI=0 把上面的内容复制进去后保存然后 输入内容编译./vim tf_sampling_compile.sh 能生成.so文件即可

5、模型调参改epoch和batch_size、在如下的文件里面 1)、把epoch改50、100、500等等  batch_size不能超过29,因为只有29个 场景 2)、vim train_and_eval_scannet.py  NUM_CLASS都改为4了 要改重新在2 个模块代码里面进行修改。 3)、vim scannet_dataset.py  如果要改分类需要把里面21的地方改写为4、 22的地方改为5
原文地址:https://www.cnblogs.com/xiaoshubass/p/13022110.html