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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

Tensorflowers ? 來源:TensorFlow ? 作者:TensorFlow ? 2020-09-30 10:26 ? 次閱讀

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

概述

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

額外的代碼

今天,我們將為大家介紹 TensorFlow Lite Task Library,這是一組功能強大且易于使用的模型接口,可代您處理大多數(shù)預處理和后處理以及其他復雜邏輯。Task Library 支持主流的機器學習任務,包括圖像分類與分割、目標檢測和自然語言處理。模型接口針對每個任務進行過專門設計,可實現(xiàn)最佳性能和易用性——現(xiàn)在,只需 5 行代碼就可以在受支持任務的預訓練和自定義模型上執(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 任務

TensorFlow Lite Task Library 目前支持六個 ML 任務,包括視覺和自然語言處理用例。下面將逐一進行簡要介紹。

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

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

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

NLClassifier 和 BertNLClassifier

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

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

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

支持的模型

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

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

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

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

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

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

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

使用 Task Library 運行推理

Task Library 可跨平臺工作,并且在 Java、C++(實驗性)和 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 模型對給定的上下文和問題執(zhí)行問答,您可以運行:

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

如果現(xiàn)有 Task 庫不支持您的用例,則您可以利用 Task API 基礎架構并構建自定義 C++/Android/iOS 推理 API。有關更多詳細信息,請參閱本指南。

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

未來工作

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

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

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

通過新的任務類型支持更多的機器學習用例。

改善跨平臺支持,針對 iOS 支持更多任務。

反饋

歡迎大家提供反饋,并就 Task Library 中支持的新用例給出建議。請向 tflite@tensorflow.org 發(fā)送電子郵件或在 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。

開發(fā)基礎結構和發(fā)布流程的主要貢獻者 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移動端開發(fā)流程

文章出處:【微信公眾號:TensorFlow】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

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

    關注

    0

    文章

    61

    瀏覽量

    33065
  • 源代碼
    +關注

    關注

    96

    文章

    2943

    瀏覽量

    66617
  • TensorFlow Lite
    +關注

    關注

    0

    文章

    26

    瀏覽量

    597

原文標題:推出 TF Lite Task Library 接口,簡化 ML移動端開發(fā)流程

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

    電子發(fā)燒友網(wǎng)站提供《快速部署Tensorflow和TFLITE模型在Jacinto7 Soc.pdf》資料免費下載
    發(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)境并測試

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

    stm32mp135d的板子可不可以跑tensorflow模型???

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

    TensorFlow是什么?TensorFlow怎么用?

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

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

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

    請問ESP32如何運行TensorFlow模型

    請問ESP32如何運行TensorFlow模型?
    發(fā)表于 07-09 07:30

    tensorflow簡單的模型訓練

    在本文中,我們將詳細介紹如何使用TensorFlow進行簡單的模型訓練。TensorFlow是一個開源的機器學習庫,廣泛用于各種機器學習任務,包括圖像識別、自然語言處理等。我們將從安裝
    的頭像 發(fā)表于 07-05 09:38 ?471次閱讀

    keras模型tensorflow session

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

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

    TensorFlow是一個廣泛使用的開源機器學習庫,它提供了豐富的API來構建和訓練各種深度學習模型。在模型訓練完成后,保存模型以便將來使用或部署是一項常見的需求。同樣,加載已保存的
    的頭像 發(fā)表于 07-04 13:07 ?1168次閱讀

    verilog task和function區(qū)別

    verilog中的task和function都是用于實現(xiàn)模塊中的可重復的功能,并且可以接收參數(shù)和返回結果。但是它們在編寫和使用上有一些區(qū)別。下面將詳細介紹task和function的區(qū)別。 語法結構
    的頭像 發(fā)表于 02-22 15:53 ?947次閱讀

    基于TensorFlow和Keras的圖像識別

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

    如何使用TensorFlow構建機器學習模型

    在這篇文章中,我將逐步講解如何使用 TensorFlow 創(chuàng)建一個簡單的機器學習模型。
    的頭像 發(fā)表于 01-08 09:25 ?895次閱讀
    如何使用<b class='flag-5'>TensorFlow</b>構建機器學習<b class='flag-5'>模型</b>

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

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

    HarmonyOS:使用MindSpore Lite引擎進行模型推理

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

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

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