推出 TF Lite Task Library 接口,简化 ML移动端开发流程

本文转载,如果打不开,可以直接读本文,内容完全一致:

推出 TF Lite Task Library 接口,简化 ML移动端开发流程 - 技术分享 - tf.wiki 社区

 

概述

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

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

支持的 ML 任务

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

  • ImageClassifier
    图像分类器是机器学习的一种常见用例,用于识别图像所代表的内容。例如,我们可能想知道给定图片中出现了哪种动物。 ImageClassifier API 支持常见的图像处理和配置,还允许在特定的受支持区域设置中显示标签,并根据标签许可名单和禁止名单筛选结果。
  • ObjectDetector 2
    物体检测器可以识别一组中可能存在哪些已知物体,并提供这些物体在给定图像或视频串流中的位置信息。 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 与下列已知的模型源兼容:

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

使用 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.”

为您的用例构建一个 Task API

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

未来工作

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

  • 改善 C++ Task Library 的易用性,例如为希望从源代码构建的用户提供预构建的二进制文件并创建人性化工作流。
  • 使用 Task Library 发布参考示例。
  • 通过新的任务类型支持更多的机器学习用例。
  • 改善跨平台支持,针对 iOS 支持更多任务。

反馈

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

致谢

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

  • Task Library Vision API 的主要贡献者 Cédric Deltheil Maxime Brénon
  • Task Library 原生/Android/iOS 基础架构和 Text API 的主要贡献者 Chen Cen
  • 开发基础结构和发布流程的主要贡献者 Xunkai YoungSeok Yoon

以及 Tian LinSijia MaYoungSeok YoonYuqi LiHsiu WangQifei WangAlec GoChristine Kaeser-ChenYicheng FanElizabeth KempWilli GierkeArun VenkatesanAmy JangMike LiangDenis BruléGaurav NemadeKhanh LeVietLuiz GUStavo MartinsShuangfeng LiJared DukeErik VeeSarah Sirajuddin 以及 Tim Davis 都对本项目给予了大力支持,在此一并表示感谢。

原文:Easy ML mobile development with TensorFlow Lite Task Library
中文: 推出 TF Lite Task Library 接口,简化 ML移动端开发流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
水资源是人类社会的宝贵财富,在生活、工农业生产中是不可缺少的。随着世界人口的增长及工农业生产的发展,需水量也在日益增长,水已经变得比以往任何时候都要珍贵。但是,由于人类的生产和生活,导致水体的污染,水质恶化,使有限的水资源更加紧张。长期以来,油类物质(石油类物质和动植物油)一直是水和土壤中的重要污染源。它不仅对人的身体健康带来极大危害,而且使水质恶化,严重破坏水体生态平衡。因此各国都加强了油类物质对水体和土壤的污染的治理。对于水中油含量的检测,我国处于落后阶段,与国际先进水平存在差距,所以难以满足当今技术水平的要求。为了取得具有代表性的正确数据,使分析数据具有与现代测试技术水平相应的准确性和先进性,不断提高分析成果的可比性和应用效果,检测的方法和仪器是非常重要的。只有保证了这两方面才能保证快速和准确地测量出水中油类污染物含量,以达到保护和治理水污染的目的。开展水中油污染检测方法、技术和检测设备的研究,是提高水污染检测的一条重要措施。通过本课题的研究,探索出一套适合我国国情的水质污染现场检测技术和检测设备,具有广泛的应用前景和科学研究价值。 本课题针对我国水体的油污染,探索一套检测油污染的可行方案和方法,利用非分散红外光度法技术,开发研制具有自主知识产权的适合国情的适于野外便携式的测油仪。利用此仪器,可以检测出被测水样中亚甲基、甲基物质和动植物油脂的污染物含量,为我国众多的环境检测站点监测水体的油污染状况提供依据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值