0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

带你了解 TensorFlow Lite Task Library模型接口

Tensorflowers 来源:TensorFlow 作者:TensorFlow 2020-09-30 10:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

文 /Lu Wang、Chen Cen、Arun Venkatesan 和 Khanh LeViet

概述

在移动设备上使用 TensorFlow Lite 模型运行推理不仅仅是与模型交互,还需要额外的代码来处理复杂的逻辑,如数据转换、预处理/后处理、加载关联文件等。

额外的代码

今天,我们将为大家介绍 TensorFlow Lite Task Library,这是一组功能强大且易于使用的模型接口,可代您处理大多数预处理和后处理以及其他复杂逻辑。Task Library 支持主流的机器学习任务,包括图像分类与分割、目标检测和自然语言处理。模型接口针对每个任务进行过专门设计,可实现最佳性能和易用性——现在,只需 5 行代码就可以在受支持任务的预训练和自定义模型上执行推理!目前,Task Library 已广泛用于许多 Google 产品的生产环境中。

TensorFlow Lite Task Library
https://tensorflow.google.cn/lite/inference_with_metadata/task_library/overview

支持的 ML 任务

TensorFlow Lite Task Library 目前支持六个 ML 任务,包括视觉和自然语言处理用例。下面将逐一进行简要介绍。

ImageClassifier
图像分类器是机器学习的一种常见用例,用于识别图像所代表的内容。例如,我们可能想知道给定图片中出现了哪种动物。ImageClassifier API 支持常见的图像处理和配置,还允许在特定的受支持区域设置中显示标签,并根据标签许可名单和禁止名单筛选结果。

ObjectDetector
物体检测器可以识别一组中可能存在哪些已知物体,并提供这些物体在给定图像或视频串流中的位置信息。ObjectDetector API 支持类似于 ImageClassifer 的图像处理选项。输出结果将列出检测到的前 k 个物体并带有标签、边界框和概率。

ImageSegmenter
图像分割器预测图像的每个像素是否与某个类相关联。这与物体检测(检测矩形区域中的物体)和图像分类(对整个图像进行分类)相反。除图像处理外,ImageSegmenter 还支持两种类型的输出蒙版:类别蒙版和置信度蒙版。

NLClassifier 和 BertNLClassifier

NLClassifier将输入文本分为不同的类别。可对该通用 API 进行配置,使其可以加载任何支持文本输入和分数输出的 TFLite 模型。

BertNLClassifier 与 NLClassifier 类似,不同之处在于,此 API 专门为 BERT 相关模型量身定制,需要在 TFLite 模型之外进行 Wordpiece 和 Sentencepiece 分词。

BertQuestionAnswerer
BertQuestionAnswerer 加载 BERT 模型并根据给定段落的内容回答问题。目前支持 MobileBERT 和 ALBERT。与 BertonCollector 类似,BertQuestionAnswerer 封装了对输入文本的复杂分词处理。您可以将上下文和问题以字符串形式传递给 BertQuestionAnswerer 模型。

支持的模型

Task Library 与下列已知的模型源兼容:

TensorFlow Hub Task Library 模型集合(图像分类/物体检测/图像分割/问答)。

TensorFlow Lite Model Maker 创建的模型。

AutoML Vision Edge 创建的模型。

Task Library 还支持符合每个 Task API 的模型兼容性要求的自定义模型。关联的文件(即标签图和 vocab 文件)和处理参数(如果适用)应正确填充到模型元数据中。有关更多详细信息,请参见 TensorFlow 网站上针对每个 API 的文档。

模型元数据
https://tensorflow.google.cn/lite/convert/metadata

TensorFlow 网站上针对每个 API 的文档
https://tensorflow.google.cn/lite/inference_with_metadata/task_library/overview

使用 Task Library 运行推理

Task Library 可跨平台工作,并且在 JavaC++(实验性)和 Swift(实验性)上均受支持。使用 Task Library 运行推理十分简单,只需编写几行代码。例如,您可以使用 DeepLab v3 TFLite 模型在 Android 中分割飞机图像(图 1),如下所示:

// Create the API from a model file and options String modelPath = "path/to/model.tflite" ImageSegmenterOptions options = ImageSegmenterOptions.builder().setOutputType(OutputType.CONFIDENCE_MASK).build(); ImageSegmenter imageSegmenter = ImageSegmenter.createFromFileAndOptions(context, modelPath, options); // Segment an image TensorImage image = TensorImage.fromBitmap(bitmap); List results = imageSegmenter.segment(image);

图 1. ImageSegmenter 输入图像

图 2. 分割蒙版

然后,您可以在结果中使用彩色标签和类别蒙版来构造分割蒙版图像,如图 2 所示。

三个文本 API 均支持 Swift。要在 iOS 中使用 SQuAD v1 TFLite 模型对给定的上下文和问题执行问答,您可以运行:

let modelPath = "path/to/model.tflite" // Create the API from a model file let mobileBertAnswerer = TFLBertQuestionAnswerer.mobilebertQuestionAnswerer(modelPath: modelPath) let context = """ The Amazon rainforest, alternatively, the Amazon Jungle, also known in English as Amazonia, is a moist broadleaf tropical rainforest in the Amazon biome that covers most of the Amazon basin of South America. This basin encompasses 7,000,000 square kilometers(2,700,000 square miles), of which 5,500,000 square kilometers(2,100,000 square miles) are covered by the rainforest. This region includes territory belonging to nine nations. """ let question = "Where is Amazon rainforest?" // Answer a question let answers = mobileBertAnswerer.answer(context: context, question: question) // answers.[0].text could be “South America.”

DeepLab v3 TFLite 模型
https://tfhub.dev/tensorflow/lite-model/deeplabv3/1/metadata/1

SQuAD v1 TFLite 模型
https://tfhub.dev/tensorflow/lite-model/albert_lite_base/squadv1/1

为您的用例构建一个 Task API

如果现有 Task 库不支持您的用例,则您可以利用 Task API 基础架构并构建自定义 C++/Android/iOS 推理 API。有关更多详细信息,请参阅本指南。

指南
https://tensorflow.google.cn/lite/inference_with_metadata/task_library/customized_task_api

未来工作

我们将继续改善 Task Library 的用户体验。近期的路线图如下:

改善 C++ Task Library 的易用性,例如为希望从源代码构建的用户提供预构建的二进制文件并创建人性化工作流。

使用 Task Library 发布参考示例。

通过新的任务类型支持更多的机器学习用例。

改善跨平台支持,针对 iOS 支持更多任务。

反馈

欢迎大家提供反馈,并就 Task Library 中支持的新用例给出建议。请向 tflite@tensorflow.org 发送电子邮件或在 GitHub 中提 issue。

issue
https://github.com/tensorflow/tflite-support/issues/new

致谢

这项成果离不开以下人员的共同努力:

Task Library Vision API 的主要贡献者 Cédric Deltheil 和 Maxime Brénon。

Task Library 原生/Android/iOS 基础架构和 Text API 的主要贡献者 Chen Cen。

开发基础结构和发布流程的主要贡献者 Xunkai 和 YoungSeok Yoon。

以及 Tian Lin、Sijia Ma、YoungSeok Yoon、Yuqi Li、Hsiu Wang、Qifei Wang、Alec Go、Christine Kaeser-Chen、Yicheng Fan、Elizabeth Kemp、Willi Gierke、Arun Venkatesan、Amy Jang、Mike Liang、Denis Brulé、Gaurav Nemade、Khanh LeViet、Luiz GUStavo Martins、Shuangfeng Li、Jared Duke、Erik Vee、Sarah Sirajuddin 以及 Tim Davis 都对本项目给予了大力支持,在此一并表示感谢。

原文标题:推出 TF Lite Task Library 接口,简化 ML移动端开发流程

文章出处:【微信公众号:TensorFlow】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • TF
    TF
    +关注

    关注

    0

    文章

    62

    浏览量

    34036
  • 源代码
    +关注

    关注

    96

    文章

    2953

    浏览量

    70637
  • TensorFlow Lite
    +关注

    关注

    0

    文章

    26

    浏览量

    845

原文标题:推出 TF Lite Task Library 接口,简化 ML移动端开发流程

文章出处:【微信号:tensorflowers,微信公众号:Tensorflowers】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    将TensorFlowSavedModel转换为支持imx8mpNPU的tflite模型,没有成功是怎么回事?

    我想将TensorFlowSavedModel转换为支持imx8mpNPU的tflite模型。 我按照以下步骤作,但没有成功 Python 模型/研究/object_detection
    发表于 04-16 06:09

    在 NPU 上运行了 eIQ TensorFlow Lite 示例模型报错

    我们已经在 NPU 上运行了 eIQ TensorFlow Lite 示例模型,但它们失败并出现以下错误: 信息:加载的模型 mobilenet_v1_1.0_224_quant.t
    发表于 03-18 06:52

    RDMA设计36:验证环境设计

    相关接口,通过与参考模型的结果进行对比,从而在仿真环境中验证 DUT 的功能是否符合设计要求。验证平台包含 AXI4 Complexes、AXIS Complexes、AXI-Lite
    发表于 02-04 15:22

    使用NORDIC AI的好处

    ; 自定义 Neuton 模型博客] Axon NPU :集成在 nRF54LM20B 等高端 SoC 中的专用 AI 加速器,对 TensorFlow Lite 模型可实现最高约 1
    发表于 01-31 23:16

    如何在TensorFlow Lite Micro中添加自定义操作符(1)

    相信大家在部署嵌入式端的AI应用时,一定使用过TensorFlow Lite Micro,以下简称TFLm。TFLm 是专为微控制器和嵌入式设备设计的轻量级机器学习推理框架,它通过模块化的操作符系统
    的头像 发表于 12-26 10:34 5750次阅读

    【上海晶珩睿莓1开发板试用体验】将TensorFlow-Lite物体归类(classify)的输出图片移植到LVGL9.3界面中

    既然调通了TensorFlow-Lite物体归类(classify)和LVGL9.3代码,那么把这两个东西结合起来也是没问题的,需要注意的是,TensorFlow-Lite是C++代码,而
    发表于 09-21 00:39

    【上海晶珩睿莓1开发板试用体验】TensorFlow-Lite物体归类(classify)

    目前尚未得知睿莓1开发板上面有NPU或者DPU之类的额外处理器,因此使用树莓派系列使用最广泛的TensorFlow-Lite库进行物体归类,使用CPU运行代码,因此占用的是CPU的算力。在
    发表于 09-12 22:43

    利用超微型 Neuton ML 模型解锁 SoC 边缘人工智能

    才能做好。 现在,这些阻碍即将被解决。 Neuton 是一个自动生成 ML 模型的框架,其大小仅为 TensorFlow Lite 等传统框架的一小部分。对于开发人员来说,这意味着要训练一个高度优化、快速和准确
    发表于 08-31 20:54

    NVMe高速传输之摆脱XDMA设计24: UVM 验证包设计

    )、 监测器( monitor) 和序列发生器(sequencer)。 驱动器从序列发生器获取事务, 并将其转换为 AXI4-Lite 接口信号;监测器从接口上监测信号, 将其组成事务发送到参考
    发表于 08-29 14:33

    Task任务:LuatOS实现“任务级并发”的核心引擎

    Task任务通过其强大的并发处理能力,使LuatOS能够在单线程环境中模拟多线程执行,通过协程的挂起与恢复机制,实现任务级的并行操作,显著提升系统效能。 sys核心库是LuatOS运行框架库,也是
    的头像 发表于 08-28 13:49 637次阅读
    <b class='flag-5'>Task</b>任务:LuatOS实现“任务级并发”的核心引擎

    揭秘LuatOS Task:多任务管理的“智能中枢”

    Task任务作为LuatOS的核心组成部分,通过智能化的任务管理机制,实现任务的创建、调度与协同运行,让复杂应用得以高效并行处理,满足实时场景下的严苛需求。 sys核心库是LuatOS运行框架库
    的头像 发表于 08-28 13:48 778次阅读
    揭秘LuatOS <b class='flag-5'>Task</b>:多任务管理的“智能中枢”

    超小型Neuton机器学习模型, 在任何系统级芯片(SoC)上解锁边缘人工智能应用.

    才能做好。 但是Neuton的推出,这个障碍现在已经不存在。 Neuton 是一个自动生成ML 模型的框架,其大小仅为TensorFlow Lite 等传统框架的一小部分。对于开发人员来说,这意味着 要训练一
    发表于 07-31 11:38

    一文带你了解电源测试系统的功能!

    在当今电子与电力技术飞速发展的时代,各类电子设备、电力系统以及新能源相关产品的研发、生产和维护过程中,电源测试系统扮演着至关重要的角色。本文将带你了解源仪电子的电源测试系统的功能。
    的头像 发表于 07-02 09:10 1209次阅读
    一文<b class='flag-5'>带你</b><b class='flag-5'>了解</b>电源测试系统的功能!

    无法将Tensorflow Lite模型转换为OpenVINO™格式怎么处理?

    Tensorflow Lite 模型转换为 OpenVINO™ 格式。 遇到的错误: FrontEnd API failed with OpConversionFailure:No translator found for
    发表于 06-25 08:27

    FA模型访问Stage模型DataShareExtensionAbility说明

    DataAbilityHelper提供对外接口,服务端是由DataAbility提供数据库的读写服务。 Stage模型中,客户端是由DataShareHelper提供对外接口,服务端是由
    发表于 06-04 07:53