首先修改代码中所有错误,与自己的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
训练结果可视化
tensorboard --logdir=log
系统架构图
训练后验证结果
CUDA_VISIBLE_DEVICES=0 python evaluate.py --num_votes 12
|