Table of Contents

编译使用tensorflow c版本动态链接库

TensorFlow C++ Session API reference documentation

Classes

Structs


编译使用tensorflow c版本动态链接库

注意:如果是linux或mac os操作系统,可以参考https://www.tensorflow.org/install/install_c,直接下载对应的so库和头文件,然后跳到步骤4。如果不能使用,再从源码编译。

1.下载tensorflow源码

git clone --recursive https://github.com/tensorflow/tensorflow

假设路径为:tensorflow_repo_path

2.安装bazel

mac os可以直接brew install bazel,没法联网安装的可以下载sh文件安装,也很简单

3.编译源码,生成so库

进入tensorflow_repo_path/tensorflow文件夹,执行:

bazel build :libtensorflow.so

4.添加必要路径

最简单方法是直接把include中文件复制到/usr/local/include,把lib中文件复制到/usr/local/lib,或者修改对应的环境变量LD_LIBRARY_PATH,并在编译的时候指定       include目录。

5.编译运行测试程序

  依然是https://www.tensorflow.org/install/install_c上的内容,直接把下面代码保存成helloTF.c文件

#include <stdio.h>
#include <tensorflow/c/c_api.h>int main() {printf(“Hello from TensorFlow C library version %s\n”, TF_Version());return 0;
}

如果使用gcc编译,除了-L和-I中添加对应的库、头文件路径,还要加上-ltensorflow,如果使用xcode这类ide,也要在ide中添加相应路径、链接库

编译成功后,把libtensorflow.so复制到可执行文件同一目录下(如果已经在/usr/local/lib或者在LD_LIBRARY_PATH中就不需要复制了),运行可执行文件,得到下面   的结果,即说明运行成功:

6.其他

tensorflow目前已经支持多种语言,并且可以编译对应的库文件,具体可以参考tensorflow_repo_path/tensorflow/BUILD文件,这里面有多个编译目标,c++的目前   也已经支持,不过相关参考资料太少,只有tensorflow_repo_path/tensorflow/cc/tutorials/example_trainer.cc一个例子。

7.参考资料

https://medium.com/jim-fleming/loading-tensorflow-graphs-via-host-languages-be10fd81876f

https://medium.com/jim-fleming/loading-a-tensorflow-graph-with-the-c-api-4caaff88463f#.z4qeoyfb0

https://www.tensorflow.org/install/install_c


TensorFlow C++ Session API reference documentation

TensorFlow's public C++ API includes only the API for executing graphs, as of version 0.5. To control the execution of a graph from C++:

  • Build the computation graph using the Python API.
  • Use tf.train.write_graph() to write the graph to a file.
  • Load the graph using the C++ Session API. For example:

// Reads a model graph definition from disk, and creates a session object you
// can use to run it.
Status LoadGraph(string graph_file_name, Session** session) {GraphDef graph_def;TF_RETURN_IF_ERROR(ReadBinaryProto(Env::Default(), graph_file_name, &graph_def));TF_RETURN_IF_ERROR(NewSession(SessionOptions(), session));TF_RETURN_IF_ERROR((*session)->Create(graph_def));return Status::OK();
}
  • Run the graph with a call to session->Run()

Classes

  • tensorflow::Env
  • tensorflow::EnvWrapper
  • tensorflow::RandomAccessFile
  • tensorflow::Session
  • tensorflow::Status
  • tensorflow::Tensor
  • tensorflow::TensorBuffer
  • tensorflow::TensorShape
  • tensorflow::TensorShapeIter
  • tensorflow::TensorShapeUtils
  • tensorflow::Thread
  • tensorflow::WritableFile

Structs

  • tensorflow::SessionOptions
  • tensorflow::Status::State
  • tensorflow::TensorShapeDim
  • tensorflow::ThreadOptions

Link:http://www.tensorfly.cn/tfdoc/api_docs/cc/index.html


Tensorflow c api相关推荐

  1. TensorFlow Keras API用法

    TensorFlow Keras API用法 Keras 是与 TensorFlow 一起使用的更高级别的作为后端的 API.添加层就像添加一行代码一样简单.在模型架构之后,使用一行代码,可以编译和拟 ...

  2. Tensorflow C++ API调用Keras模型实现RGB图像语义分割

    我的实验是基于PSPNet模型实现二维图像的语义分割,下面的代码直接从得到的h5文件开始往下做... 也不知道是自己的检索能力出现了问题还是咋回事,搜遍全网都没有可以直接拿来用的语义分割代码,东拼西凑 ...

  3. 今晚直播 | 谷歌资深工程师手把手教你使用TensorFlow最新API构建学习模型

    目前,深度学习的研究和应用大受追捧,各种开源的深度学习框架层出不穷.TensorFlow 作为目前最受欢迎的深度学习框架,已经在 GitHub 上获得了 112194 个 star,受欢迎程序可见一斑 ...

  4. Ubuntu Tensorflow object_detection API 目标检测环境搭建

    Ubuntu 16.04下安装TensorFlow Object Detection API(对象检测API) Ubuntu 16.04下搭建TensorFlow运行环境(用Anaconda)     ...

  5. tensorflow函数API总结

    tensorflow函数API总结: 首推官网查询 tf.keras.Input:创建输入层 别名: tf.keras.Input tf.keras.layers.Input tf.keras.Inp ...

  6. Tensorflow高级API的进阶--利用tf.contrib.learn建立输入函数

    正文共5958个字,预计阅读时间15分钟. 笔记整理者:王小草 笔记整理时间:2017年2月27日 笔记对应的官方文档:https://www.tensorflow.org/get_started/i ...

  7. 一文初探Tensorflow高级API使用(初学者篇)

    正文共5917个字,3张图,预计阅读时间34分钟. 笔记整理者:王小草 笔记整理时间:2017年2月26日 对应的官方文档地址:https://www.tensorflow.org/get_start ...

  8. OpenCV Tensorflow C++API Protobuf eigen3 OpenBlas 编译过程

    OpenCV Tensorflow C++API Protobuf eigen3 OpenBlas 编译过程 文章目录 OpenCV Tensorflow C++API Protobuf eigen3 ...

  9. TensorFlow 官方API 中文版(二)

    TensorFlow 官方API 中文版(二) 7/19/2016 6:55:43 AM 1.1.1 class tf.Graph(续) tf.Graph.devide(device_name_or_ ...

  10. Tensorflow高级API系列(一):Estimator是什么?

    前言 最近一直在做CTR预估的模型,为了应对大规模数据和导出更加易用的线上模型导出模型的问题,不得不放弃session,placehoder这种比较原始的tensorflow编码.使用更加高级的est ...

最新文章

  1. [引]ASP.NET 中 事务处理(SqlTransaction)示例
  2. 互联网共鸣之声:2018年或成为云计算转折之年
  3. 认识top的显示结果
  4. python中panel不接受参数_Python基础之只接收关键字参数的函数
  5. Zepto.js简介
  6. oracle 求时间差年,Oracle计算时间差常用函数
  7. [笔试题目] 美团2015年9月后端开发工程师笔试题
  8. 体质测试数据统计软件,[体质测试数据excel自动统计表]体质测试数据Excel自动统计模板的研制...
  9. 异构计算黄金时代下,超强异构计算服务器FP5468G2将会带来哪些变革?
  10. IT = 加班多?外国小哥打破“魔咒”:“每天工作 10 分钟,工资近 9 万美元!”...
  11. 任意电脑登录MySQL_使用批处理命令注册运行mysql数据库,无需注册mysql服务,可以在任意电脑登录使用...
  12. .net连接DB2的异常SQL0666 - SQL query exceeds specified time limit or storage limit.错误处理
  13. sybil attack (女巫攻击)
  14. Python3网络爬虫:腾讯新闻App的广告数据抓取
  15. systemUI之statusBar
  16. 计算机图形图像处理专业知识,计算机图形图像处理专业技术的突破研究
  17. 反思|开启B站少女心模式,探究APP换肤机制的设计与实现
  18. 电脑桌面怎么设置html背景图,css中如何设置背景图片?
  19. XMind软件非试用版本下载(亲测有效)
  20. python所有单词和语法_单词积累:常见,阅读单词和语法重点(全部都要)

热门文章

  1. Mybatis判断表是否存在
  2. Jenkins+GitLab+Docker+SpringCloud+Kubernetes实现可持续自动化微服务
  3. DataGrip使用入门
  4. v-if和v-for一起用踩过的坑
  5. VS2013 配置全局 VC++目录
  6. bzoj3159 决战
  7. 老李分享:接电话扩展之uiautomator 1
  8. JAVA_java.util.Date与java.sql.Date相互转换
  9. 适合办公的笔记本电脑_最适合你的十款笔记本电脑
  10. html自动生成工具_「写论文神器」一个好用的论文自动生成工具,内含30w 文献数据...