服务器的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 pointSIFTmaster.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/sitepackages/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/cuda8.0/include lcudart
L /usr/local/cuda8.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/cuda10.0/include I
/home/jmydurant/a/root/anaconda3/envs/rapids/lib/python3.6/site
packages/tensorflow/include/external/nsync/public lcudart L
/usr/local/cuda10.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/distpackages/tensorflow/include I
/usr/local/cuda8.0/include lcudart L /usr/local/cuda8.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/cuda10.0/include I
/root/anaconda3/envs/rapids/lib/python3.6/site
packages/tensorflow/include/external/nsync/public lcudart L
/usr/local/cuda10.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/cuda10.0/include I
/root/anaconda3/envs/rapids/lib/python3.6/site
packages/tensorflow/include/external/nsync/public lcudart L
/usr/local/cuda10.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/cuda8.0/include lcudart
L /usr/local/cuda8.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/cuda10.0/include I
/root/anaconda3/envs/rapids/lib/python3.6/site
packages/tensorflow/include/external/nsync/public lcudart L
/usr/local/cuda10.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