zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    第八天-2019-12-3环境变量-自动挂载-别名
    Raid
    图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID100
    第七天-2019-12-2改网卡,dns,挂载
    第六天2019-11-29vi命令使用技巧与架构目录
    linux目录架构
    第五天-2019-11-28基本配置命令
    第四天--2019-11-27网络信息配置
    ue4 Widget to RenderTarget
    UE4 ProcessEvent multiple parameters
  • 原文地址:https://www.cnblogs.com/xiaoshubass/p/13022110.html
Copyright © 2011-2022 走看看