直接java调用tflite_Tensorflow Lite介绍

简介

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文件包含图结构。冻结操作就是将上述文件进行合并操作</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值