服务器的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