pointnet++复现

首先修改代码中所有错误,与自己的python和tensorflow适配,导入该导入的包,其中provider和eulerangles和plyfile都在utils文件下或者pointnet-master的代码中
修改tf_ops中的文件:参考第一篇与第二篇
注意:报错

/usr/bin/ld: cannot find -ltensorflow_framework,collect2: error: ld returned 1 exit status。

应该是没有修改sh文件时未能找到/usr/…/ltensorflow_framework这个路径
解决方法:
我是用的云服务器,将sh文件中的-ltensorflow_framework修改为-l:libtensorflow_framework.so.1
有的人可能是要改成-libtensorflow_framework
然后运行

cd tf_ops/sampling
sh tf_sampling_compile.sh
cd tf_ops/grouping
sh tf_grouping_compile.sh
cd tf_ops/d_interpolation
sh tf_interpolate_compile.sh

进入环境

conda activate tf

训练

cd autodl-nas/pointnet2-master
CUDA_VISIBLE_DEVICES=0   python  train.py

报错

tensorflow.python.framework.errors_impl.NotFoundError: /root/autodl-nas/pointnet2-master/tf_ops/sampling/tf_sampling_so.so: undefined symbol: _ZN10tensorflow12OpDefBuilder4AttrESs

将sh文件中的-D_GLIBCXX_USE_CXX11_ABI=0改为1
再运行.sh文件

cd tf_ops/sampling
sh tf_sampling_compile.sh
cd tf_ops/grouping
sh tf_grouping_compile.sh
cd tf_ops/d_interpolation
sh tf_interpolate_compile.sh

pointnet++复现_第1张图片

训练结果可视化

tensorboard --logdir=log#这里要指定日志文件夹名字,因为默认似乎是logs,但是pointnet++分类训练生成的日志文件名为log

pointnet++复现_第2张图片系统架构图
pointnet++复现_第3张图片
pointnet++复现_第4张图片
pointnet++复现_第5张图片

训练后验证结果

CUDA_VISIBLE_DEVICES=0 python evaluate.py --num_votes 12

pointnet++复现_第6张图片

可视化(此步骤无需gpu)

在utils文件下

sh compile_render_balls_so.sh
python show3d_balls.py

获得可视化结果
pointnet++复现_第7张图片

你可能感兴趣的:(作业,tensorflow)