pointnet++源代码在ubuntu服务器上anaconda的虚拟环境中提示notfounderror
跟pointnet的源码可以直接运行不同,pointnet++的源码需要将tf_ops文件夹下所有子文件夹中tf_xxx_compile.sh的文件在终端中进行重新编译,参考 github,即cd到相应子文件夹下,运行
sh tf_xxx_compile.sh
否则会提示找不到tf_sampling_so.so文件
但会出现错误,错误如下:
tensorflow.python.framework.errors_impl.NotFoundError: /***/pointnet2-master/tf_ops/sampling/tf_sampling_so.so: undefined symbol: _ZN10tensorflow16KernelDefBuilderD2Ev
检查后发现原因是几个tf_xxx_compile.sh文件中写的tensorflow的安装路径和虚拟环境中的tensorflow中的安装路径不同,导致编译时可能使用的是服务器上的tensorflow版本,解决方案是:
将所有子文件夹中相应的内容替换为anaconda中所创建的虚拟环境中tensorflow的安装路径,即:
将
/usr/local/lib/python2.7/dist-packages/tensorflow/include
改为
/***.conda/envs/pointnet2/lib/python2.7/site-packages/tensorflow/include -I /usr/local/cuda-8.0/include