直接java调用tflite_Tensorflow Lite介绍

本文详细介绍了如何在Android上直接使用Java调用Tensorflow Lite进行模型运行,包括Tensorflow Lite的特点、模型结构、转换过程,以及Android端的使用方法和Python API的转换示例。
摘要由CSDN通过智能技术生成

简介

Tensorflow Lite是针对移动设备和嵌入式设备的轻量化解决方案,占用空间小,低延迟。Tensorflow Lite在android8.1以上的设备上可以通过ANNA启用硬件加速。

支持浮点运算和量化模型,并已针对移动平台进行优化,可以用来创建和运行自定义模型。开发者也可以在模型中添加自定义操作。

FlatBuffer格式

具有在移动设备运行更快的内核解释器

支持通过Tensorflow训练好的模型转换为Tensorflow Lite格式(pd,h5等都可以)

当支持所有优化操作时,模型小于300k,当仅支持inception v3和mobilenet模型优化时,模型小于200k

预训练模型:

inception v3:用于目标检测

MobileNets:专门针对移动端的模型,具有低延迟,高速度,低内存,可用于图像识别,目标检测,图像分割,但是精度小于inception v3

量化版本的MobileNets,通过将float-32转为int-8,在CPU上拥有更快的速度

支持java,c++API

以上谈到的预训练模型基于ImageNet数据集训练,支持1000种类别。如果此数据集不能满足你的项目需要,你需要准备自己的数据集和标签,使用迁移学习重新训练模型。

模型结构

0e9b88fba5f177d0ba82028da64bb192.png

Tensorflow Lite模型的数据格式与Tensorflow桌面端不同,需要使用Tensorflow Lite转换为.tflite格式,然后应用到移动端。

模型结构:

java-API:包装C++API,以便在android上使用java调用

C++-API:加载Tensorflow Lite模型和解释器

解释器:执行模型一系列核心操作,支持选择内核加载。全部加载300kb,不加载只有100kb

在android8.1以上设备,可通过相关api进行硬件加速(硬件支持的情况下),否则在CPU执行

转换模型格式

Tensorflow Lite转换器支持以下格式:

使用python API执行SavedModel保存的模型文件

tf.keras保存的.h5模型文件

转换后的GraphDef文件

转换GraphDef文件

Tensorflow模型一般保存为.pd或.pdtxt格式的文件,要转换为Tensorflow Lite支持的文件,首先需要进行frozen操作。此操作处理多个不同格式的文件:

tf.GraphDef(pd,pdtxt):图文件,包含操作,张量,变量的定义

checkpoint(.ckpt):包含变量,不包含解释器

tensorflow lite(.tflite):序列化的FlatBuffer文件,包含所有需要的文件

checkpoint文件包含训练权重,tf.graphdef文件包含图结构。冻结操作就是将上述文件进行合并操作</

### 回答1: _pywrap_tensorflow_internal是TensorFlow的内部Python包,包含了TensorFlow的内部实现和底层代码。它主要用于TensorFlow的开发和调试,一般用户不需要直接使用该包。 ### 回答2: _pywrap_tensorflow_internal是一个C++封装了TensorFlow的功能的模块。TensorFlow是一个用于机器学习和深度学习的开源框架,而_pywrap_tensorflow_internal模块是TensorFlow内部使用的一个C++模块,用于提供对TensorFlow核心功能的高级封装。 _pywrap_tensorflow_internal模块提供了一些包装类和函数,可以方便地在C++代码中调用TensorFlow的功能。这样,开发者可以使用C++语言来更高效地利用TensorFlow的各种功能,在底层实现更复杂的机器学习模型和算法。 该模块包含了一些重要功能的封装,如张量操作、计算图的搭建和执行、模型的保存和加载等。这些功能可以方便地通过Python的API进行调用,但在底层实现时,使用了C++来提高执行效率。 在TensorFlow的源代码中,_pywrap_tensorflow_internal模块是由C++编写的,它提供了底层的功能实现,为TensorFlow提供了高性能和灵活性。通过对_pywrap_tensorflow_internal的使用,可以更好地理解TensorFlow的内部实现,并为开发者提供更多自定义机会。 总而言之,_pywrap_tensorflow_internal是一个C++封装了TensorFlow核心功能的模块,提供了高效且灵活的机器学习和深度学习编程环境。它在TensorFlow中扮演着重要的角色,为开发者提供了更多底层的功能和自定义机会。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值