tensorflow c/c++库使用方法

tensorflow目前支持最好的语言还是python,但大部分服务都用C++ or Java开发,一般采用动态链接库(.so)方式调用算法,因此tensorflow的c/c++ API还是有必要熟悉下,而且经过本人测试,相同算法,c接口相比python速度更快。

下面讲解如何让程序调用tensorflow c/c++库

 

1.编译库

先在github上下载tensorflow源码,执行./configure先配置项目,然后按照这篇博客里写的利用bazel编译动态链接库,编译命令如下

C版本:

bazel build :libtensorflow.so

C++版本:

bazel build :libtensorflow_cc.so

编译成功后,在bazel-bin/tensorflow/目录下会出现libtensorflow.so/libtensorflow_cc.so文件

 

2.其他依赖

在使用tensorflow c/c++接口时,会有很多头文件依赖、protobuf版本依赖等问题

(1)tensorflow/contrib/makefile目录下,找到build_all_xxx.sh文件并执行,例如准备在linux上使用,就执行build_all_linux.sh文件,成功后会出现一个gen文件夹

(2)把tensorflow和bazel-genfiles文件夹下的头文件都抽取出来放在一个文件夹下面,或者通过cmake把这两个路径添加进include_directories中

(3)tensorflow/contrib/makefile/gen/protobuf/include,也就是(1)中生成的文件夹中的头文件,也需要抽取或者在cmake中包含在include_directories中

 

3.编写代码

 随便编写一段使用tf的代码,例如下面:

复制代码

#include <tensorflow/core/platform/env.h>
#include <tensorflow/core/public/session.h>

#include <iostream>

using namespace std;
using namespace tensorflow;

int main()
{
    Session* session;
    Status status = NewSession(SessionOptions(), &session);
    if (!status.ok()) {
        cout << status.ToString() << "\n";
        return 1;
    }
    cout << "Session successfully created.\n";
}

复制代码

 

4.生成可执行文件

把libtensorflow_cc.so文件放在lib文件夹下,代码放在src文件夹下,编写cmakelist.txt,具体文件结构如下:

CMakeLists.txt

/src

/lib

/include

/build

下面是一个例子:

 

复制代码

 cmake_minimum_required (VERSION 2.8.8)
 project (tf_example)
 
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=c++11 -W")
 aux_source_directory(./src DIR_SRCS)
 link_directories(./lib)
 include_directories(
   path_to_tensorflow/tensorflow
   path_to_tensorflow/tensorflow/bazel-genfiles
   path_to_tensorflow/tensorflow/contrib/makefile/gen/protobuf/include
   ) add_executable(tf_test  ${DIR_SRCS}) target_link_libraries(tf_example tensorflow_cc)

复制代码

 

接下来执行命令:

cd build

cmake ..

make

会生成一个tf_test可执行文件,执行无误即大功告成

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow是一个广泛应用于机器学习和人工智能的开源框架,它提供了强大的工具和来构建、训练和评估各种深度学习模型,包括人脸识别模型。 使用TensorFlow进行人脸识别模型的训练可以分为以下几个步骤: 1. 数据收集:首先需要收集足够数量和多样性的人脸图像数据。这些数据集将被用于训练模型和评估模型的性能。 2. 数据预处理:对收集到的人脸图像数据进行预处理是必要的。这可能包括对图像进行裁剪、调整大小、灰度化、增强对比度等操作,以使数据更有用和适合模型的输入。 3. 构建模型:使用TensorFlow的API,如Keras或Estimator,可以构建人脸识别模型。常用的模型架构包括卷积神经网络(CNN)和深度残差网络(ResNet),但也可以根据具体需求进行自定义模型的构建。 4. 模型训练:将预处理后的数据传入模型并进行训练。这包括定义损失函数和优化算法,通常采用的是反向传播算法。 5. 模型评估:训练完成后,需要对模型进行评估以了解其性能。可以使用一些指标,如准确率、召回率和F1分数等。 6. 模型调优:根据评估结果,可以对模型进行调优,如调整模型的超参数、增加数据集的规模、使用数据增强技术等,以提高模型的性能。 7. 模型部署:完成模型训练和调优后,可以将训练好的模型部署到实际应用中进行测试和应用。 通过以上步骤,可以使用TensorFlow框架训练一个有效的人脸识别模型,并根据实际需求对模型进行调整和优化,提高模型的准确性和性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值