开源框架---通过Bazel编译使用tensorflow c++ API 记录
开源框架---通过Bazel编译使用tensorflow c++ API 记录
tensorflow python API,在python中借用pip安装tensorflow,真的很方便,几句指令就完成了。
tensorflow c++ API,通过Bazel编译tensorflow源码方式接通C++接口,配了好几天,终于顺利结束。第一次这么配置,真的是一路踩坑,不断的解决,已经忘了如何一步步完成的。就是遇到问题就解决,奋力爬出坑。总结不顺利的几点原因:
1,版本问题。不兼容,或高或低。tf + protobuf + bazel + python + numpy +... 哪个版本都需要兼容才能顺利向下进行。重复着装里卸载,卸载了重装,匹配为止。
比如,一句简单的指令安装bazel是最新版本,与之前安装好的tf版本不对应,卸载,下载低版本的 bazel安装包,95M+ 官网本机下载好慢好慢,1~2h过去了,可能还没什么大的进展。后来通过花*币买的。其他,深印象的下载,太多了,....
2,网络问题。有的需要google源,依赖项会因为网络不稳、无法翻墙、....等网络原因,出现不同的情况,速度慢还报错。有的资源下载一半,卡了...
比如,tensorflow/contrib/makefile/downloads/eigen...这个就下载了很久,一下午... 或下载的不全获有问题...
第一次,尝试这种源码方式安装tf,耗时3天+终于通了。

--------------------------------------------------------------------------------------------------------------------
下文转载,也遇到与该作者一样的问题。当时自己一顿摸索,踩了很多坑,最后不是这么简单解决的,但是都是发现缺什么想招解决的。作者解决的简便、还好。感谢!
记得,当时我应该是下载缺失的文件,单独安装,然后在CMakelists.txt中在添加路径。
--------------------------------------------------------------------------------------------------------------------
(1)、nsync_cv.h文件缺失:
这个文件一般是会在tensorflow/contrib/makefile/downloads/nsync/public这个文件夹下的,但是我这边是编译tensorflow的时候有些依赖文件没有下载到导致它缺失,解决方法是存在/tensorflow/contrib/makefile/download_dependencies.sh这个文件,执行它来下载相关的文件,相关文件会放在/home/zcx/tensorflow-r1.7/tensorflow/contrib/makefile/downloads这个文件夹下;
(2)、提示Eigen相关的问题
这个问题跟前面的类似,如果下载了相关的依赖文件之后,在/tensorflow-r1.7/tensorflow/contrib/makefile/downloads文件夹下找到eigen文件夹,进入之后执行以下指令进行eigen的编译:
mkdir build
cd build
cmake ..
make
sudo make install
(3)、提示关于protobuf版本的问题
问题如下:

这个主要是protobuf版本的问题,所以要查看bazel-genfiles/tensorflow/core/framework/types.pb.h这个文件夹中关于protobuf的版本要求,然后下载相应的版本来更新即可,这里tensorflow1.12要求是protobuf要大于等于3.6:

所以就去github上下载对应的protobuf版本。要下载源码,然后编译安装即可。
@https://blog.csdn.net/yz2zcx/article/details/83153588
开源框架---通过Bazel编译使用tensorflow c++ API 记录的更多相关文章
- Bazel 编译工具; tensorflow 编译
什么是bazel https://docs.bazel.build/versions/master/bazel-overview.html 使用 bazel 构建 c++ 工程 https://git ...
- 【实践】如何利用tensorflow的object_detection api开源框架训练基于自己数据集的模型(Windows10系统)
如何利用tensorflow的object_detection api开源框架训练基于自己数据集的模型(Windows10系统) 一.环境配置 1. Python3.7.x(注:我用的是3.7.3.安 ...
- 开源框架---tensorflow c++ API 一个卡了很久的问题
<开源框架---tensorflow c++ API 运行第一个“手写字的例子”> 中可以说明tensorflow c++ API是好用的,.......
- TensorFlow入门——bazel编译(带GPU)
这一系列基本上是属于我自己进行到了那个步骤就做到那个步骤的 由于新装了GPU (GTX750ti)和CUDA9.0.CUDNN7.1版本的软件,所以希望TensorFlow能在GPU上运行,也算上补上 ...
- Pyhton开源框架(加强版)
info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...
- Python开源框架
info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...
- Ubuntu16.04编译安装tensorflow,2018最新血泪踩坑之后的全面总结!绝对成功!【转】
本文转载自:https://blog.csdn.net/pzh11001/article/details/79683133 大家好,我是 (深度学习硬件DIY总群)(719577294)群主: ...
- plain framework 1 一款主要用于网络(游戏)开发的C/C++开源框架 安装篇 updated
上次介绍了一下plain framework的基础相关资料,今天该框架正式开源发布.项目的地址托管于github上,我相信大多数朋友都应该知道.今天要介绍的是该框架的目录基本结构,以及分别在linux ...
- iOS常用第三方开源框架和优秀开发者博客等
博客收藏iOS开发过程好的开源框架.开源项目.Xcode工具插件.Mac软件.文章等,会不断更新维护,希望对你们有帮助.如果有推荐或者建议,请到此处提交推荐或者联系我. 该文档已提交GitHub,点击 ...
随机推荐
- JAVA数据结构和算法 1-综述:数据结构和数据类型
数据结构:指数据在计算机内存空间中或者磁盘中的组织形式. 对于数据结构的操作:插入.删除.查找.迭代遍历.排序等: Java.util包中含有诸如向量(一个可扩充的数组).栈.哈希表等类型的数据结构, ...
- Asp.Net文件的上传和下载
aspx页面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="上传和下载文件. ...
- 洛谷 题解 P1225 【黑白棋游戏】
看见很多dalao写了什么双向BFS,蒟蒻表示不会写啊. 怎么办办? 先来分析一下题目,一眼看去就是一个搜索题,考虑DFS与BFS. 先放一份DFS的代码: #include<bits/stdc ...
- Kali中安装VMwaretools
VMware Workstation 中 虚拟机选项,安装VMware Tools 选项. 在虚拟机中,打开VMware Tools,将 VMwareTools-10.1.15-6627299.tar ...
- C++ algorithm算法库
C++ algorithm算法库 Xun 标准模板库(STL)中定义了很多的常用算法,这些算法主要定义在<algorithm>中.编程时,只需要在文件中加入#include<algo ...
- os路径
import os linux下 例如: 我现在在 /home/settings.py文件下 # 获取当前的绝对路径 os.path.abspath(__file__) # 获取的内容 /home/s ...
- time模块/datetime模块/calendar模块
time模块时间的表示形式时间戳:以整型或浮点型表示⼀个时间,该时间以秒为单位,这个时间是以1970年1⽉1⽇0时0分0秒开始计算的. 导入time import time 1.返回当前的时间戳 no ...
- go变量的定义并赋值
变量在定义时没有明确的初始化时会赋值为_零值_. 零值是: 数值类型为 `0`, 布尔类型为 `false`, 字符串为 `""`(空字符串). package main impo ...
- Golang不会自动把slice转换成interface{}类型的slice
目录 例子 原因 如何去实现 例子 我们时常会写一些interface,例如: type A interface{ Print() } type B struct { } func (b *B) Pr ...
- PHP运行机制和原理
以echo "Hello World";为例 经历五个步骤:1.扫描(scanning):先进行语法分析和词法分析,然后将index.php内容变成一个个语言片段(token ar ...