点云分割3DBoNet || 工程环境配置cuda10.0-tensorflow-1.13

写在前面:

服务器上的环境的cuda、显卡驱动版本都是偏高的。但该项目中,对于 tf_ops的编译环境,要求tensorflow的版本在1.13及1.13以下,会比较容易编译,1.14以上,看网上讲述的需要修改些设置。
本着尽快编译通过进行测试的原则,环境最终选择了tensorflow-gpu==1.13、cuda10.0。
就在自己本地安装了个双系统,在ubuntu上配置该工程,并且一遍过,在这里记录下

工程链接:https://github.com/Yang7879/3D-BoNet

1 安装cuda10.0 以及相应的 cudnn

该步骤网上的教程随便一搜就可解决问题。
这里需要说明的是,因为不同工程中需要不同的深度学习框架的版本,需要不同的cuda版本以及cudnn,所以自己习惯在虚拟环境中安装 cudatoolkit,在安装个能够兼容多个驱动即可。
但在这里,编译时会使用到nvcc,所以需要在系统环境下安装完整的cuda环境,单纯的虚拟环境中的cudatoolkit是不够的

2安装anaconda及虚拟环境

conda create -n BoNet python=3.6
pip install tensorflow-gpu==1.13.1
pip install scipy
pip install h5py
pip install open3d-python

注意:tensorflow的一定要给版本信息,其他的随意(大不了到时候报错了重新装下哈哈哈)

3 编译 tf_ops

3.1 查找tensorflow包含路径和库路径

在该虚拟环境中运行如下代码:

import tensorflow as tf
print(tf.sysconfig.get_include())
print(tf.sysconfig.get_lib())

在这里插入图片描述


3.2 编译tf_ops

下载3D-BoNet工程并解压,

  • 进入到./tf_ops/tf_sampling/路径下,

  • 修改 tf_sampling_compile.sh文件的权限:chmod +x tf_sampling_compile.sh

  • 修改 tf_sampling_compile.sh文件的内容修改后:

    /usr/local/cuda-10.0/bin/nvcc tf_sampling_g.cu -o tf_sampling_g.cu.o -c -O2 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC

    g++ -std=c++11 tf_sampling.cpp tf_sampling_g.cu.o -o tf_sampling_so.so -shared -fPIC -I /home/ll/anaconda3/envs/BoNet/lib/python3.6/site-packages/tensorflow/include -I /usr/local/cuda-10.0/include -I /home/ll/anaconda3/envs/BoNet/lib/python3.6/site-packages/tensorflow/include/external/nsync/public -lcudart -L /usr/local/cuda-10.0/lib64/ -L/home/ll/anaconda3/envs/BoNet/lib/python3.6/site-packages/tensorflow -l:libtensorflow_framework.so -O2 -D_GLIBCXX_USE_CXX11_ABI=0

    修改结束后保存,然后在该文件路径下的终端里进行编译:./tf_sampling_compile.sh
    结束后会生成相应的so文件
    在这里插入图片描述

!!! !!! 然后进入 ./tf_ops/grouping/路径下,重复上面的工作
!!! !!! 然后进入 ./tf_ops/interpolation 路径下,重复上面的工作

4 下载数据集并测试

S3DIS数据下载:

  • S3DIS:https ://drive.google.com/open ? id = 1hOsoOqOWKSZIgAZLu2JmOb_U8zdR04v0
  • 百度盘:https ://pan.baidu.com/s/1ww_Fs2D9h7_bA2HfNIa2ig密码:qpt7

训练:python main_train.py
测试:python main_eval.py

该工程发布的预训练模型,是基于 S3DIS 数据集进行训练的。
据作者说由于文件许可的原因,不公开scannetV2数据集的预训练模型,但是给了测试结果
https://drive.google.com/file/d/1cV07rP02Yi3Eu6GQxMR2buigNPJEvCq0/view下载scannet测试集测试的结果。
然后运行python helper_data_scannet.py即可得到可视化的结果。

5 常见问题

  1. 使用高版本的tensorflow进行该工程的环境配置,自己当前并未尝试,如果有相关问题,可移步其他博客查看
  2. 报错不存在tf_grouping_so.so或者tf_sampling_so.so文件:一定注意,【tf_ops】路径下是3个文件夹,需要分别在3个文件夹下进行sh文件编译。切记切记

由于该篇博客是事后一段时间才记录的,所以有些小问题已经记不清楚了,如有疑问和问题,欢迎讨论

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值