0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

Tensorflowers ? 來(lái)源:TensorFlow ? 作者:TensorFlow ? 2020-09-30 10:26 ? 次閱讀

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

概述

在移動(dòng)設(shè)備上使用 TensorFlow Lite 模型運(yùn)行推理不僅僅是與模型交互,還需要額外的代碼來(lái)處理復(fù)雜的邏輯,如數(shù)據(jù)轉(zhuǎn)換、預(yù)處理/后處理、加載關(guān)聯(lián)文件等。

額外的代碼

今天,我們將為大家介紹 TensorFlow Lite Task Library,這是一組功能強(qiáng)大且易于使用的模型接口,可代您處理大多數(shù)預(yù)處理和后處理以及其他復(fù)雜邏輯。Task Library 支持主流的機(jī)器學(xué)習(xí)任務(wù),包括圖像分類與分割、目標(biāo)檢測(cè)和自然語(yǔ)言處理。模型接口針對(duì)每個(gè)任務(wù)進(jìn)行過(guò)專門設(shè)計(jì),可實(shí)現(xiàn)最佳性能和易用性——現(xiàn)在,只需 5 行代碼就可以在受支持任務(wù)的預(yù)訓(xùn)練和自定義模型上執(zhí)行推理!目前,Task Library 已廣泛用于許多 Google 產(chǎn)品的生產(chǎn)環(huán)境中。

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

支持的 ML 任務(wù)

TensorFlow Lite Task Library 目前支持六個(gè) ML 任務(wù),包括視覺和自然語(yǔ)言處理用例。下面將逐一進(jìn)行簡(jiǎn)要介紹。

ImageClassifier
圖像分類器是機(jī)器學(xué)習(xí)的一種常見用例,用于識(shí)別圖像所代表的內(nèi)容。例如,我們可能想知道給定圖片中出現(xiàn)了哪種動(dòng)物。ImageClassifier API 支持常見的圖像處理和配置,還允許在特定的受支持區(qū)域設(shè)置中顯示標(biāo)簽,并根據(jù)標(biāo)簽許可名單和禁止名單篩選結(jié)果。

ObjectDetector
物體檢測(cè)器可以識(shí)別一組中可能存在哪些已知物體,并提供這些物體在給定圖像或視頻串流中的位置信息。ObjectDetector API 支持類似于 ImageClassifer 的圖像處理選項(xiàng)。輸出結(jié)果將列出檢測(cè)到的前 k 個(gè)物體并帶有標(biāo)簽、邊界框和概率。

ImageSegmenter
圖像分割器預(yù)測(cè)圖像的每個(gè)像素是否與某個(gè)類相關(guān)聯(lián)。這與物體檢測(cè)(檢測(cè)矩形區(qū)域中的物體)和圖像分類(對(duì)整個(gè)圖像進(jìn)行分類)相反。除圖像處理外,ImageSegmenter 還支持兩種類型的輸出蒙版:類別蒙版和置信度蒙版。

NLClassifier 和 BertNLClassifier

NLClassifier將輸入文本分為不同的類別。可對(duì)該通用 API 進(jìn)行配置,使其可以加載任何支持文本輸入和分?jǐn)?shù)輸出的 TFLite 模型。

BertNLClassifier 與 NLClassifier 類似,不同之處在于,此 API 專門為 BERT 相關(guān)模型量身定制,需要在 TFLite 模型之外進(jìn)行 Wordpiece 和 Sentencepiece 分詞。

BertQuestionAnswerer
BertQuestionAnswerer 加載 BERT 模型并根據(jù)給定段落的內(nèi)容回答問題。目前支持 MobileBERT 和 ALBERT。與 BertonCollector 類似,BertQuestionAnswerer 封裝了對(duì)輸入文本的復(fù)雜分詞處理。您可以將上下文和問題以字符串形式傳遞給 BertQuestionAnswerer 模型。

支持的模型

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

TensorFlow Hub Task Library 模型集合(圖像分類/物體檢測(cè)/圖像分割/問答)。

TensorFlow Lite Model Maker 創(chuàng)建的模型。

AutoML Vision Edge 創(chuàng)建的模型。

Task Library 還支持符合每個(gè) Task API 的模型兼容性要求的自定義模型。關(guān)聯(lián)的文件(即標(biāo)簽圖和 vocab 文件)和處理參數(shù)(如果適用)應(yīng)正確填充到模型元數(shù)據(jù)中。有關(guān)更多詳細(xì)信息,請(qǐng)參見 TensorFlow 網(wǎng)站上針對(duì)每個(gè) API 的文檔。

模型元數(shù)據(jù)
https://tensorflow.google.cn/lite/convert/metadata

TensorFlow 網(wǎng)站上針對(duì)每個(gè) API 的文檔
https://tensorflow.google.cn/lite/inference_with_metadata/task_library/overview

使用 Task Library 運(yùn)行推理

Task Library 可跨平臺(tái)工作,并且在 Java、C++(實(shí)驗(yàn)性)和 Swift(實(shí)驗(yàn)性)上均受支持。使用 Task Library 運(yùn)行推理十分簡(jiǎn)單,只需編寫幾行代碼。例如,您可以使用 DeepLab v3 TFLite 模型在 Android 中分割飛機(jī)圖像(圖 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. 分割蒙版

然后,您可以在結(jié)果中使用彩色標(biāo)簽和類別蒙版來(lái)構(gòu)造分割蒙版圖像,如圖 2 所示。

三個(gè)文本 API 均支持 Swift。要在 iOS 中使用 SQuAD v1 TFLite 模型對(duì)給定的上下文和問題執(zhí)行問答,您可以運(yùn)行:

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

為您的用例構(gòu)建一個(gè) Task API

如果現(xiàn)有 Task 庫(kù)不支持您的用例,則您可以利用 Task API 基礎(chǔ)架構(gòu)并構(gòu)建自定義 C++/Android/iOS 推理 API。有關(guān)更多詳細(xì)信息,請(qǐng)參閱本指南。

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

未來(lái)工作

我們將繼續(xù)改善 Task Library 的用戶體驗(yàn)。近期的路線圖如下:

改善 C++ Task Library 的易用性,例如為希望從源代碼構(gòu)建的用戶提供預(yù)構(gòu)建的二進(jìn)制文件并創(chuàng)建人性化工作流。

使用 Task Library 發(fā)布參考示例。

通過(guò)新的任務(wù)類型支持更多的機(jī)器學(xué)習(xí)用例。

改善跨平臺(tái)支持,針對(duì) iOS 支持更多任務(wù)。

反饋

歡迎大家提供反饋,并就 Task Library 中支持的新用例給出建議。請(qǐng)向 tflite@tensorflow.org 發(fā)送電子郵件或在 GitHub 中提 issue。

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

致謝

這項(xiàng)成果離不開以下人員的共同努力:

Task Library Vision API 的主要貢獻(xiàn)者 Cédric Deltheil 和 Maxime Brénon。

Task Library 原生/Android/iOS 基礎(chǔ)架構(gòu)和 Text API 的主要貢獻(xiàn)者 Chen Cen。

開發(fā)基礎(chǔ)結(jié)構(gòu)和發(fā)布流程的主要貢獻(xiàn)者 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 都對(duì)本項(xiàng)目給予了大力支持,在此一并表示感謝。

原文標(biāo)題:推出 TF Lite Task Library 接口,簡(jiǎn)化 ML移動(dòng)端開發(fā)流程

文章出處:【微信公眾號(hào):TensorFlow】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TF
    TF
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    33061
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2943

    瀏覽量

    66578
  • TensorFlow Lite
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    588

原文標(biāo)題:推出 TF Lite Task Library 接口,簡(jiǎn)化 ML移動(dòng)端開發(fā)流程

文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    快速部署Tensorflow和TFLITE模型在Jacinto7 Soc

    電子發(fā)燒友網(wǎng)站提供《快速部署Tensorflow和TFLITE模型在Jacinto7 Soc.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 11:41 ?0次下載
    快速部署<b class='flag-5'>Tensorflow</b>和TFLITE<b class='flag-5'>模型</b>在Jacinto7 Soc

    第四章:在 PC 交叉編譯 aarch64 的 tensorflow 開發(fā)環(huán)境并測(cè)試

    本文介紹了在 PC 端交叉編譯 aarch64 平臺(tái)的 tensorflow 庫(kù)而非 tensorflow lite 的心酸過(guò)程。
    的頭像 發(fā)表于 08-25 11:38 ?599次閱讀
    第四章:在 PC 交叉編譯 aarch64 的 <b class='flag-5'>tensorflow</b> 開發(fā)環(huán)境并測(cè)試

    stm32mp135d的板子可不可以跑tensorflow模型?。?/a>

    請(qǐng)問是stm32mp135d的板子可不可以跑tensorflow模型???
    發(fā)表于 07-18 06:49

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開發(fā)的一個(gè)開源深度學(xué)習(xí)框架,它允許開發(fā)者方便地構(gòu)建、訓(xùn)練和部署各種復(fù)雜的機(jī)器學(xué)習(xí)模型。TensorFlow憑借其高效的計(jì)算性能、靈活的架構(gòu)以及豐富的工具和庫(kù),在學(xué)
    的頭像 發(fā)表于 07-12 16:38 ?488次閱讀

    使用TensorFlow進(jìn)行神經(jīng)網(wǎng)絡(luò)模型更新

    使用TensorFlow進(jìn)行神經(jīng)網(wǎng)絡(luò)模型的更新是一個(gè)涉及多個(gè)步驟的過(guò)程,包括模型定義、訓(xùn)練、評(píng)估以及根據(jù)新數(shù)據(jù)或需求進(jìn)行模型微調(diào)(Fine-tuning)或重新訓(xùn)練。下面我將詳細(xì)闡述這
    的頭像 發(fā)表于 07-12 11:51 ?272次閱讀

    請(qǐng)問ESP32如何運(yùn)行TensorFlow模型

    請(qǐng)問ESP32如何運(yùn)行TensorFlow模型?
    發(fā)表于 07-09 07:30

    tensorflow簡(jiǎn)單的模型訓(xùn)練

    在本文中,我們將詳細(xì)介紹如何使用TensorFlow進(jìn)行簡(jiǎn)單的模型訓(xùn)練。TensorFlow是一個(gè)開源的機(jī)器學(xué)習(xí)庫(kù),廣泛用于各種機(jī)器學(xué)習(xí)任務(wù),包括圖像識(shí)別、自然語(yǔ)言處理等。我們將從安裝
    的頭像 發(fā)表于 07-05 09:38 ?426次閱讀

    keras模型轉(zhuǎn)tensorflow session

    在這篇文章中,我們將討論如何將Keras模型轉(zhuǎn)換為TensorFlow session。 Keras和TensorFlow簡(jiǎn)介 Keras是一個(gè)高級(jí)神經(jīng)網(wǎng)絡(luò)API,它提供了一種簡(jiǎn)單、快速的方式來(lái)構(gòu)建
    的頭像 發(fā)表于 07-05 09:36 ?396次閱讀

    如何使用Tensorflow保存或加載模型

    TensorFlow是一個(gè)廣泛使用的開源機(jī)器學(xué)習(xí)庫(kù),它提供了豐富的API來(lái)構(gòu)建和訓(xùn)練各種深度學(xué)習(xí)模型。在模型訓(xùn)練完成后,保存模型以便將來(lái)使用或部署是一項(xiàng)常見的需求。同樣,加載已保存的
    的頭像 發(fā)表于 07-04 13:07 ?950次閱讀

    verilog task和function區(qū)別

    verilog中的task和function都是用于實(shí)現(xiàn)模塊中的可重復(fù)的功能,并且可以接收參數(shù)和返回結(jié)果。但是它們?cè)诰帉懞褪褂蒙嫌幸恍﹨^(qū)別。下面將詳細(xì)介紹task和function的區(qū)別。 語(yǔ)法結(jié)構(gòu)
    的頭像 發(fā)表于 02-22 15:53 ?902次閱讀

    基于TensorFlow和Keras的圖像識(shí)別

    ,讓我們先花點(diǎn)時(shí)間來(lái)了解一些術(shù)語(yǔ)。TensorFlow/KerasTensorFlow是GoogleBrain團(tuán)隊(duì)創(chuàng)建的一個(gè)Python開源庫(kù),它包含許多算法和模型
    的頭像 發(fā)表于 01-13 08:27 ?734次閱讀
    基于<b class='flag-5'>TensorFlow</b>和Keras的圖像識(shí)別

    如何使用TensorFlow構(gòu)建機(jī)器學(xué)習(xí)模型

    在這篇文章中,我將逐步講解如何使用 TensorFlow 創(chuàng)建一個(gè)簡(jiǎn)單的機(jī)器學(xué)習(xí)模型
    的頭像 發(fā)表于 01-08 09:25 ?874次閱讀
    如何使用<b class='flag-5'>TensorFlow</b>構(gòu)建機(jī)器學(xué)習(xí)<b class='flag-5'>模型</b>

    【飛騰派4G版免費(fèi)試用】第四章:部署模型到飛騰派的嘗試

    了 PC 和飛騰派使用同一個(gè)模型進(jìn)行檢測(cè)的時(shí)間,可以對(duì)比看下: 飛騰派耗時(shí)大概 9s PC端耗時(shí)大概 2s 第二部分,分別在PC和飛騰派測(cè)試 TensorFlow Lite 的簡(jiǎn)單模型
    發(fā)表于 12-20 21:10

    HarmonyOS:使用MindSpore Lite引擎進(jìn)行模型推理

    使用 MindSpore Lite 推理引擎進(jìn)行模型推理的通用開發(fā)流程。 基本概念 在進(jìn)行開發(fā)前,請(qǐng)先了解以下概念。 張量 :它與數(shù)組和矩陣非常相似,是 MindSpore Lite
    發(fā)表于 12-14 11:41

    高速接口MIPI DPHY配置task函數(shù)

    景芯SoC訓(xùn)練營(yíng)有同學(xué)問Verdi如何加載task函數(shù)里面的波形,這里以高速圖像接口MIPI為例,給大家介紹下吧。
    的頭像 發(fā)表于 11-18 16:59 ?918次閱讀
    高速<b class='flag-5'>接口</b>MIPI DPHY配置<b class='flag-5'>task</b>函數(shù)