IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> pointnet2(pointnet++)源码复现 -> 正文阅读

[Python知识库]pointnet2(pointnet++)源码复现

该项目的github原始地址:https://github.com/charlesq34/pointnet2

1.环境配置

1.1 环境展示

官方在ubuntu14.04上进行了测试,所用环境为:

tensorflow-gpu1.2
python2.7

我所使用的设备为2080上的ubuntu18.04,所用的环境为:

anaconda3
tensorflow-gpu 1.8.0
python 3.6
cuda 9.0
cudnn7.6
gcc 5.5

conda list如下:
在这里插入图片描述
接下来配置上述环境,并编译tensorflow(编译过程遇到的问题比较多)

1.2 环境配置

创建虚拟环境:conda creat -n pointnet++ python=3.6
启动环境:conda activate pointnet++
安装:tensorflow-gpu:pip install tensorflow-gpu==1.8.0
查看是否安装成功:python -c 'import tensorflow as tf; print(tf.__version__)'(安装成功:输出1.8.0)

其余环境可以在运行程序报错后依次pip安装
安装与tensorflow-gpu1.8对应的cuda和cudnn,这里需要cuda9.0,cudnn7.6,安装过程参看:ubuntu18.04下cuda9.0-cudnn7.6安装与多版本cuda共存及切换

1.3 下载源码及训练数据集

源码地址:https://github.com/charlesq34/pointnet2
修改代码:由于python2与python3的语法上的不同,需要将代码中的xrange替换为range;print后面的加括号
下载数据集:下载地址
将下载好的数据放置到pointnet2-master/data/目录下并解压,如下tree:
在这里插入图片描述
将代码中下载数据集的部分注释掉:在train.py 和train_multi_gpu.py中注释掉第25行的import modelnet_ht_dataset

1.4 编译tf_ops

官网中的指导:
在这里插入图片描述
终端输入:

python -c 'import tensorflow as tf; print(tf.sysconfig.get_include())'
输出:/home/gzz/anaconda3/envs/pointnet++/lib/python3.6/site-packages/tensorflow/include

python -c 'import tensorflow as tf; print(tf.sysconfig.get_lib())'
输出:/home/gzz/anaconda3/envs/pointnet++/lib/python3.6/site-packages/tensorflow

cd 到tf_ops文件夹,将3d_interpolation、grouping、sampling中的.sh文件进行修改(以tf_sampling_compile.sh为例):
将下图蓝色部分改为自己的cuda版本,红色部分为上面的第一个输出,灰黑色部分为上面的第二个输出+/
在这里插入图片描述

#/bin/bash
/usr/local/cuda-9.0/bin/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 /home/gzz/anaconda3/envs/pointnet++/lib/python3.6/site-packages/tensorflow/include -I /usr/local/cuda-9.0/include -I /home/gzz/anaconda3/envs/pointnet++/lib/python3.6/site-packages/tensorflow/include/external/nsync/public -lcudart -L /usr/local/cuda-9.0/lib64/ -L /home/gzz/anaconda3/envs/pointnet++/lib/python3.6/site-packages/tensorflow/ -ltensorflow_framework -O2 -D_GLIBCXX_USE_CXX11_ABI=0

三个.sh文件操作一样。
这里编译可能会遇到一些问题,我的是按照上述改成功的。
如果失败可以将最后面的-D_GLIBCXX_USE_CXX11_ABI=0改为-D_GLIBCXX_USE_CXX11_ABI=1,或者注释掉#-D_GLIBCXX_USE_CXX11_ABI=0(网上教程gcc版本高于4.0要改为1,这里一开始我是按照网上教程上来直接就改了,但是后面运行train.py文件报错,后面发现0才适合我,如果这里遇到编译失败或者编译成功后train.py报错的话可以把这几种都试试)我的报错如下:
在这里插入图片描述

tensorflow.python.framework.errors_impl.NotFoundError: /home/wu/pointnet2-master/tf_ops/sampling/tf_sampling_so.so: undefined symbol: _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringB5cxx11Ev

关于该问题可以参看:
官网issues48

2. 训练

python train.py

报错:

FileNotFoundError: [Errno 2] No such file or directory: ‘/home/wu/pointnet2-master/data/modelnet40_normal_resampled/shape_names.txt’
在这里插入图片描述

将data/modelnet40_normal_resampled/下的modelnet40_shape_names.txt文件改名为shape_names.txt即可

在这里插入图片描述
训练数据将保存在log文件夹中的log_train.txt中:
在这里插入图片描述

通过:tensorboard --logdir=/home/wu/pointnet2-master/log可以可视化训练过程,其中–logdir后面是你自己的log文件夹的位置
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 12:42:21  更:2021-07-30 12:43:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:21:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码