Tensorflow 编译及应用C++静态库

背景

目前对Tensorflow的主流应用模式是使用python训练模型,使用c++或者java应用训练好的模型。上篇博客介绍了如何在工程中应用Tensorflow 动态库,本博客介绍如何在工程中应用Tensorflow静态库

编译静态链接库

clone tensorflow git 仓库

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

进入 tensorflow 工程下contrib/makefile路径

tensorflow/contrib/makefile

运行编译脚本

# MacOS 以及Linux 使用此脚本
./build_all_linux.sh

脚本执行完成后我们得到tensorflow静态库以及相应头文件。
下一步我们将Tensorflow静态库头文件及Tensorflow依赖的静态库头文件整理到统一路径下,其他c++ 工程就可以应用这些库文件及头文件。

# 将tensorflow 头文件以及库文件收集到此路径
mkdir -p ~/tensorflow_libs/tensorflow
# include 路径存放tensorflow主要头文件
mkdir -p ~/tensorflow_libs/tensorflow/include/tensorflow
# lib 路径存放编译好的静态库
mkdir -p ~/tensorflow_libs/tensorflow/lib
# 拷贝tensorflow 主要头文件
cp -r tensorflow/core ~/tensorflow_libs/tensorflow/include
# 拷贝tensoflow 静态库
cp tensorflow/contrib/makefile/gen/lib/libtensorflow-core.a ~/tensorflow_libs/tensorflow/lib
# 拷贝tensorflow 第三方头文件
mkdir -p ~/tensorflow_libs/tensorflow/tensorflow_third_party
cp -r third_party ~/tensorflow_libs/tensorflow/tensorflow_third_party
# 拷贝gen目录下文件
cp -r tensorflow/contrib/makefile/gen/host_obj ~/tensorflow_libs/tensorflow/
cp -r tensorflow/contrib/makefile/gen/proto ~/tensorflow_libs/tensorflow/
cp -r tensorflow/contrib/makefile/gen/protobuf ~/tensorflow_libs/tensorflow/
cp -r tensorflow/contrib/makefile/gen/proto_text ~/tensorflow_libs/tensorflow/

# 拷贝downloads下文件
# eigen3
mkdir -p ~/tensorflow_libs/tensorflow/eigen3
cp -r tensorflow/contrib/makefile/downloads/eigen/Eigen ~/tensorflow_libs/tensorflow/eigen3
cp -r tensorflow/contrib/makefile/downloads/eigen/unsupported ~/tensorflow_libs/tensorflow/eigen3
# absl
cp -r tensorflow/contrib/makefile/downloads/absl ~/tensorflow_libs/tensorflow/
# nsyc
mkdir -p ~/tensorflow_libs/tensorflow/nsyc/include
mkdir -p ~/tensorflow_libs/tensorflow/nsyc/lib
# 拷贝nsyc 头文件
cp -r tensorflow/contrib/makefile/downloads/nsync/* ~/tensorflow_libs/tensorflow/nsyc/include
# 拷贝nsyc 库文件
cp tensorflow/contrib/makefile/downloads/nsync/builds/default.macos.c++11/libnsync.a ~/tensorflow_libs/tensorflow/nsyc/lib

应用静态链接库

示例python model

我们使用一个简单的model作为示例,该model实现了两个字符串拼接的功能。模型保存到test_model.pb。代码如下

#-*- coding: utf-8 -*-
"""
File Name: test_model.py
Author: ce39906
mail: ce39906@163.com
Created Time: 2018-09-11 17:15:32
"""
import tensorflow as tf

a = tf.Variable("hello ", name = <
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值