运行碰到编译生成的.so文件报错:
undefined symbol: _ZN10tensorflow12OpDefBuilder4AttrESs
在这里插入图片描述
解决办法:
查看你的gcc版本,如果版本大于4,则需要在对应的.sh文件中删除-D_GLIBCXX_USE_CXX11_ABI=0

gcc --version

在这里插入图片描述
我的版本为5.4.0,所以需要删除-D_GLIBCXX_USE_CXX11_ABI = 0
在这里插入图片描述

删除后:

g++ -std=c++11 \
    -shared ./tools/src_mesh_renderer/rasterize_triangles_grad.cc ./tools/src_mesh_renderer/rasterize_triangles_op.cc ./tools/src_mesh_renderer/rasterize_triangles_impl.cc ./tools/src_mesh_renderer/rasterize_triangles_impl.h \
    -o ./tools/kernels/rasterize_triangles_kernel.so -fPIC \
    -I$TF_INC -L$TF_LIB -ltensorflow_framework -O2

删除之后重新运行.sh文件,然后运行代码就可以正常运行了。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐