_ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv_undefined symbol: _zn10tensorflow8internal21checko-程序员宅基地

技术标签: 环境配置  深度学习  

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: _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv

2. Solution

link

-D_GLIBCXX_USE_CXX11_ABI=0

0 -> 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编译一下。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiaoyaolangwj/article/details/117884593

智能推荐

【springboot】退出后清除session的内容并让session失效_springboot清除session-程序员宅基地

文章浏览阅读1.2w次,点赞5次,收藏10次。https://blog.csdn.net/s740556472/article/details/71275328@RequestMapping("/logout")public String logout(HttpSession session, SessionStatus sessionStatus){ session.invalidate(); sessionStat..._springboot清除session

人机融合:洞察智能化海战制胜关键-程序员宅基地

文章浏览阅读959次。——解读《追问人工智能:从剑桥到北京》1、智能化海战与舰艇装备随着军事智能技术在海战领域的持续深度发展,智能化海战呈现出人机主导、虚实结合、脑网争夺的全新海战形态。典型的作战样式为有人与..._人在旁路

微信h5公众号授权、调起微信支付_js h5页面 拉起微信支付-程序员宅基地

文章浏览阅读761次。微信h5授权、调起支付_js h5页面 拉起微信支付

ARMv7-A 处理器窥探(4) —— Cache_armv7 dirty-程序员宅基地

文章浏览阅读2.1k次,点赞3次,收藏24次。0、Preview缓存这个词来源于法语动词 cacher,“隐藏”。 在许多情况下,可以说 Cache 对大家是透明的,或者对大家是不可见的。 但是,虽然是“透明”,但是并不代表它不存在,咱们还是需要去了解一下。第一版ARM架构诞生时,处理器的时钟速度和内存的访问速度大致相似。发展到今日, CPU 核心要复杂得多,速度远远超过以前。然而,外部总线和存储设备的频率没有达到同样的程度。 片上SRAM的小块,它可以以与核心相同的速度工作,但是这样的RAM与标准DRAM(主存)块相比非常昂贵。主存的..._armv7 dirty

Fiber组件-程序员宅基地

文章浏览阅读169次。Fiber 定义分区是一种软件设计模型,旨在实现高度可伸缩性和并发性。它是将应用程序的执行流程分解为多个独立的执行单元(即 Fiber)来实现的。Fiber使用的是一种称为"协作式多任务"(Cooperative Multitasking)的设计模型。在传统的多任务处理中,操作系统的调度器负责在不同的线程或进程之间进行切换,以实现并发执行。这种模型称为"抢占式多任务"(Preemptive Multitasking),因为操作系统可以在任何时间点强制切换执行权。_fiber组件

智能学习 | MATLAB实现FA-BP多输入单输出回归预测(萤火虫算法优化BP神经网络)-程序员宅基地

文章浏览阅读513次。智能学习 | MATLAB实现FA-BP多输入单输出回归预测(萤火虫算法优化BP神经网络)

随便推点

搭建智能调度系统:同城代驾小程序的开发教学-程序员宅基地

文章浏览阅读342次,点赞9次,收藏10次。在未来,我们可以进一步优化系统功能,引入人工智能算法,提高系统的智能化水平,为用户提供更加便捷、安全的代驾服务。在前端开发中,需要实现用户注册、登录验证、订单发布等功能的业务逻辑。通过调用微信小程序提供的API,实现用户信息的获取和存储,以及订单的发布和管理。系统架构设计可以采用微服务架构,将不同功能拆分为独立的服务模块,提高系统的灵活性和扩展性。在开始开发之前,首先需要进行需求分析,明确系统的核心功能和用户需求。根据需求分析的结果,设计用户注册、登录、订单发布等页面,并保证页面之间的跳转和交互流畅。

目标检测网络选择 (Faster R-CNN,SSD,R-FC) Speed/accuracy trade-offs for modern convolutional object detectors_在目标检测中,不同目标大小与检测网络的选择-程序员宅基地

文章浏览阅读786次。Speed/accuracy trade-offs for modern convolutional object detectors现代卷积目标检测器的速度/精度折衷主要内容:如何选择目标检测网络:Faster R-CNN,SSD,R-FCN论文原网址:https://arxiv.org/abs/1611.10012翻译部分内容参考:http://tongtianta.site/..._在目标检测中,不同目标大小与检测网络的选择

WPS表格 下拉列表 两级下拉列表联动 多级下拉列表联动_wps 下拉框联动-程序员宅基地

文章浏览阅读835次。INDIRECT(输入第一行数据)多个,就多出重复此步骤。_wps 下拉框联动

MySQL - 基础二_写一个查询,只插入两条记录-程序员宅基地

文章浏览阅读1.1k次,点赞12次,收藏21次。CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)语法:案例:由于 主键 或者 唯一键 对应的值已经存在而导致插入失败可以选择性的进行同步更新操作语法:语法:案例:语法:比较运算符:逻辑运算符:案例:语法:注意:没有 ORDER BY 子句的查询,返回的顺序_写一个查询,只插入两条记录

error: src refspec dev does not match any._src refspec does not match any-程序员宅基地

文章浏览阅读3.9k次。error: src refspec dev does not match any.问题如题原因解决问题如题在git上新建分支,在进行git push origin branchName的时候出现如题报错;原因使用git branch检查当前的分支名,发现与push时分支名不同,也就是新建分支名的时候拼错了,于是就找不到对应的分支可以提交。解决1.切换回主分支,git checkout master2. 删除拼错名字的本地分支,git branch -D branchName3. 查看是否删_src refspec does not match any

android----下载android-4.2源码_5g天天奭5g运动免费入口-程序员宅基地

文章浏览阅读5k次。官网指南:http://source.android.com/source/building-running.html1、安装git和curl 进入Linux ,打开终端,在终端窗口敲下面的命令: sudo apt-get install git-core curl 2、安装repo脚本 首先安装repo。在当前用户:~目录下新建一个bin目录。然后,向PATH_5g天天奭5g运动免费入口

推荐文章

热门文章

相关标签