TensorFlow Lite开发系列之C++接口解析(二)

简介: TensorFlow Lite开发系列之C++接口解析

编译


1.下载tensorflow源码


2.保证系统已经安装g++, gcc, make, cmake


3.加压刚才下载好的 tensorflow 源码, 进入tensorflow-master/tensorflow/lite/tools/make/目录下


4.首先执行download_dependencies.sh文件,这里会下载一些依赖,博主下载了好几次才成功(小小心累),可能需要翻墙,如果总是下载失败的话,可以关注留言或者关注私信,联系我要这个文件


5.接下来根据不同的设备,执行不同的build_xxxxx.sh文件,博主是在ubuntu上运行的,这里sh build_lib.sh, 执行完毕后,在同级目录下生成 gen 目录,代表成功


API解析:


微信图片_20230203193157.png


这是推理过程当中,常用的两个类,常用方法如下(更多API介绍):


// 基于缓冲区构建模型
BuildFromBuffer(const char *caller_owned_buffer, size_t buffer_size, ErrorReporter *error_reporter)


// 基于文件构建模型
BuildFromFile(const char *filename, ErrorReporter *error_reporter)


// 验证缓冲区的内容是否合法,然后基于缓冲区构建模型
VerifyAndBuildFromBuffer(const char *buffer, size_t buffer_size, TfLiteVerifier *extra_verifier, ErrorReporter *error_reporter)


// 验证文件的内容是否合法,然后基于该文件构建模型
VerifyAndBuildFromFile(const char *filename, TfLiteVerifier *extra_verifier, ErrorReporter *error_reporter)


AllocateTensors()  // 加载所有的tensor


Interpreter(ErrorReporter *error_reporter)  // 实例化解释器


GetInputName(int index) const  // 返回给定输入的名称


GetOutputName(int index) const  // 返回给定输出的名称


Invoke()  //  调用推理器


ResizeInputTensor(int tensor_index, const std::vector< int > & dims)  // 更改给定张量的尺寸


SetAllowFp16PrecisionForFp32(bool allow)  // 尽可能允许float16精度用于FP32计算


SetNumThreads(int num_threads)  // 设置解释器可用的线程数


UseNNAPI(bool enable)  // 启用或禁用NN API(启用时为true)


typed_input_tensor(int index)  // 将变指针返回给定输入张量的数据


typed_output_tensor(int index)  // 将指针返回给定输出张量的数据
目录
相关文章
|
4天前
|
SQL 存储 关系型数据库
数据库开发之图形化工具以及表操作的详细解析
数据库开发之图形化工具以及表操作的详细解析
21 0
|
24天前
|
开发框架 Linux C语言
C、C++、boost、Qt在嵌入式系统开发中的使用
C、C++、boost、Qt在嵌入式系统开发中的使用
31 1
|
4天前
|
SQL 存储 关系型数据库
数据库开发之mysql前言以及详细解析
数据库开发之mysql前言以及详细解析
14 0
|
27天前
|
安全 Java 数据安全/隐私保护
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
65 1
|
9天前
|
机器学习/深度学习 API TensorFlow
TensorFlow的高级API:tf.keras深度解析
【4月更文挑战第17天】本文深入解析了TensorFlow的高级API `tf.keras`,包括顺序模型和函数式API的模型构建,以及模型编译、训练、评估和预测的步骤。`tf.keras`结合了Keras的易用性和TensorFlow的性能,支持回调函数、模型保存与加载等高级特性,助力提升深度学习开发效率。
|
15天前
|
监控 测试技术 Android开发
移动应用与系统:开发与操作系统的深度解析
【4月更文挑战第11天】在这篇文章中,我们将深入探讨移动应用的开发过程,以及移动操作系统如何影响这些应用的性能和功能。我们将详细分析移动应用开发的关键步骤,包括需求分析、设计、编码、测试和维护。同时,我们也将探讨移动操作系统,如Android和iOS,如何为应用开发提供支持,并影响其性能。
|
28天前
|
机器学习/深度学习 搜索推荐 vr&ar
移动应用与系统的未来:从开发到操作系统的全面解析
本文将探讨移动应用和系统的未来,包括移动应用开发的趋势,移动操作系统的进展,以及这两者如何相互影响。我们将深入探讨如何通过理解这些变化,来优化移动应用的性能和用户体验。
10 2
|
1天前
|
XML 人工智能 Java
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
|
9天前
yolo-world 源码解析(六)(2)
yolo-world 源码解析(六)
18 0
|
9天前
yolo-world 源码解析(六)(1)
yolo-world 源码解析(六)
13 0

推荐镜像

更多