pointnet复现

准备

验证python版本

python

验证tensorflow版本
在python下输入

import tensorflow as tf
tf.__version__

验证cuda版本

nvcc -V

运行前准备
输入ssh
输入密码
进入环境

conda activate tf

训练
分类用的数据集为modelnet40,该数据集含有40个CAD模型
进入页面

cd autodl-nas/pointnet-master

使用gpu训练代码

CUDA_VISIBLE_DEVICES=0   python  train.py

如果是用cpu训练则需要调整一下参数,因为源代码默认batchsize为32

python train.py \
--batch_size=8 \
--max_epoch=250

查看gpu利用率

nvidia-smi

pointnet复现_第1张图片根据图
pointnet复现_第2张图片可知gpu利用率基本维持在80%以上
获取部分结果截图
pointnet复现_第3张图片

可视化

tensorboard --logdir log

pointnet复现_第4张图片pointnet复现_第5张图片pointnet复现_第6张图片pointnet复现_第7张图片

评估模型及可视化输出错误的预测

CUDA_VISIBLE_DEVICES=0 python evaluate.py --visu

pointnet复现_第8张图片
pointnet复现_第9张图片
pointnet复现_第10张图片

部分分割

如果是cpu版本则使用代码

python train.py \
--batch=8 \
--epoch=250

gpu版本

cd part_seg
CUDA_VISIBLE_DEVICES=0 python train.py
CUDA_VISIBLE_DEVICES=0 python test.py

此时报错

tensorflow.python.framework.errors_impl.ResourceExhaustedError: 2 root error(s) found.
  (0) Resource exhausted: OOM when allocating tensor with shape[32,4944,2048,1] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
         [[{{node gradients/seg/conv1/Conv2D_grad/Conv2DBackpropInput}}]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

查询百度后说是gpu显存不够,我是rtx2080ti,11gb,4核cpu,16gb。调整代码中的batch,默认是32,设置为8,可以正常运行
pointnet复现_第11张图片
pointnet复现_第12张图片

场景语义分割

cd sem_seg
CUDA_VISIBLE_DEVICES=0 python train.py

pointnet复现_第13张图片
参考文献:
pointnet论文翻译
PointNet代码详解
PointNet复现

你可能感兴趣的:(python)