_ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv
2021/6/14 10:23:37
本文主要是介绍_ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
undefined symbol: _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv
这是一类错误。问题的指向编译没有编译成功。前面的错误 tensorflow.python.framework.errors_impl.NotFoundError: /home/wjay/deeplearning/PU-GAN/PU-G
AN-master/tf_ops/sampling/tf_sampling_so.so: 这是告诉你哪个文件没有编译好。针对这个文件到对应的sh文件中修改。
我的应用场景是PU-GAN的代码没有编译成功。没有前面的错误好修改,通过提示,你可以猜到,其实是因为我们从github下载的代码,别人的环境以及路径个跟我们的不一致的导致的。
举个简单的例子:
在PU-GAN代码中需要编译tf_ops下所有的tf_xxx_compile.sh文件:
#!/usr/bin/env bash #/bin/bash /usr/local/cuda-10.1/bin/nvcc tf_sampling_g.cu -o tf_sampling_g.cu.o -c -O2 -DGOOGLE_CUDA= 1 -x cu -Xcompiler -fPIC#g++ -std=c++11 tf_sampling.cpp tf_sampling_g.cu.o -o tf_sampling_so.so -shared -fPIC -I / data/lirh/anaconda3/envs/tensorflow3/lib/python3.6/site-packages/tensorflow/include -I /usr/local/cuda-8.0/include -lcudart -L /usr/local/cuda-8.0/lib64/ -O2 -D_GLIBCXX_USE_CXX11_ABI=0g++ -std=c++11 tf_sampling.cpp tf_sampling_g.cu.o -o tf_sampling_so.so -shared -fPIC -I /h ome/lirh/anaconda3/envs/tensorflow11/lib/python3.6/site-packages/tensorflow/include -I /usr/local/cuda-8.0/include -I /home/lirh/anaconda11/envs/tensorflow3/lib/python3.6/site-packages/tensorflow/include/external/nsync/public -lcudart -L /usr/local/cuda-8.0/lib64/ -L/home/lirh/anaconda3/envs/tensorflow11/lib/python3.6/site-packages/tensorflow -ltensorflow_framework -O2 -D_GLIBCXX_USE_CXX11_ABI=1
源文件如此,通过观察我们知道:原作者,用的cuda是10.1,但我是9.0,那么我们就需要把所有cuda-10.1修改为9.0。修改完之后,我们还会报错:因为tensorflow的位置不对,再观察发现作者用的anaconda3所以,你要换成自己的python路径。把所有python3.6的地方换成自己的python3.6路径。
操作完上面两个地方后,还是有个问题:编译没有通过,错误如文章一开头。
解决方案:
1. Problem
When buiding cumtom op in tensorflow, this error occured.
tensorflow.python.framework.errors_impl.NotFoundError: /home/zyt3781909/project/project/objdect/networks/layers/roi_pooling_layer/roi_pooling.so: undefined symbol: _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv2. Solution
link
-D_GLIBCXX_USE_CXX11_ABI=00 -> 1 or 1 -> 0.
此外还有如下错误:
错误信息为:tensorflow.python.framework.errors_impl.NotFoundError: /home/wjay/deeplearning/PU-GAN/PU-GAN-master/tf_ops/grouping/tf_grouping_so.so: undefined symb
ol: _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringB5cxx11Ev
#!/usr/bin/env bash #/bin/bash /usr/local/cuda-9.0/bin/nvcc tf_sampling_g.cu -o tf_sampling_g.cu.o -c -O2 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC #g++ -std=c++11 tf_sampling.cpp tf_sampling_g.cu.o -o tf_sampling_so.so -shared -fPIC -I /data/lirh/anaconda3/envs/tensorflow3/lib/python3.6/site-packages/tensorflow/include -I /usr/local/cuda-8.0/include -lcudart -L /usr/local/cuda-8.0/lib64/ -O2 -D_GLIBCXX_USE_CXX11_ABI=0 g++ -std=c++11 tf_sampling.cpp tf_sampling_g.cu.o -o tf_sampling_so.so -shared -fPIC -I /home/wjay/.local/lib/python3.6/site-packages/tensorflow/include -I /usr/local/cuda-9.0/include -I /home/wjay/.local/lib/python3.6/site-packages/tensorflow/include/external/nsync/public -lcudart -L /usr/local/cuda-9.0/lib64/ -L/home/wjay/.local/lib/python3.6/site-packages/tensorflow -ltensorflow_framework -O2 -D_GLIBCXX_USE_CXX11_ABI=0
修改方式还是修改最后的0或者1。修改完,别忘sh tf_xxx.sh编译一下。
这篇关于_ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-30tensorflow是什么-icode9专业技术文章分享
- 2024-10-15成功地使用本地的 NVIDIA GPU 运行 PyTorch 或 TensorFlow
- 2024-01-23供应链投毒预警 | 恶意Py包仿冒tensorflow AI框架实施后门投毒攻击
- 2024-01-19attributeerror: module 'tensorflow' has no attribute 'placeholder'
- 2024-01-19module 'tensorflow.compat.v2' has no attribute 'internal'
- 2023-07-17【2023年】第33天 Neural Networks and Deep Learning with TensorFlow
- 2023-07-10【2023年】第32天 Boosted Trees with TensorFlow 2.0(随机森林)
- 2023-07-09【2023年】第31天 Logistic Regression with TensorFlow 2.0(用TensorFlow进行逻辑回归)
- 2023-07-01【2023年】第30天 Supervised Learning with TensorFlow 2(用TensorFlow进行监督学习 2)
- 2023-06-18【2023年】第29天 Supervised Learning with TensorFlow 1(用TensorFlow进行监督学习 1)