色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

基于嵌入向量的全新設備端搜索庫

Tensorflowers ? 來源:TensorFlow ? 作者:TensorFlow ? 2022-06-02 11:30 ? 次閱讀

今年的 I/O 大會上,我們很高興宣布推出一個基于嵌入向量的全新設備端搜索庫,讓您在幾毫秒的時間內即可從數百萬個數據樣本中快速找到相似的圖像、文本或音頻

693921c2-e1ae-11ec-ba43-dac502259ad0.gif

此搜索庫通過使用模型,將搜索查詢嵌入到表示查詢語義的高維向量中來執行搜索。隨后搜索庫使用 ScaNN(可擴容最近鄰算法)從預定義的數據庫中搜索相似項目。為將搜索庫應用到您的數據集,您需要使用 Model Maker Searcher API教程)構建自定義 TFLite Searcher 模型,然后使用 Task Library Searcher API(視覺/文本)將其部署到設備上。

  • ScaNN

    https://github.com/google-research/google-research/tree/master/scann

  • 教程

    https://tensorflow.google.cn/lite/tutorials/model_maker_text_searcher

  • 視覺

    https://tensorflow.google.cn/lite/inference_with_metadata/task_library/image_searcher

  • 文本

    https://tensorflow.google.cn/lite/inference_with_metadata/task_library/text_searcher

例如,使用在 COCO 上訓練的 Searcher 模型,搜索查詢:“A passenger plane on the runway”,系統將返回以下圖像:

  • COCO

    https://cocodataset.org/#home

699b9668-e1ae-11ec-ba43-dac502259ad0.png

圖 1:所有圖像均來自 COCO 2014 訓練和驗證數據集。圖像 1 由 Mark Jones Jr. 依據《版權歸屬許可證》提供。圖像 2 由 305 Seahill 依據《版權歸屬-禁止演繹許可證》提供。圖像 3 由 tataquax 依據《版權歸屬-相同方式共享許可證》提供。

在本文中,我們將向您介紹使用新 TensorFlow Lite Searcher Library 構建文本到圖像搜索功能的端到端示例(根據給定文本查詢檢索圖像)。以下是主要步驟:

1. 使用 COCO 數據集訓練用于圖像和文本查詢編碼的雙編碼器模型。

2. 使用 Model Maker Searcher API 創建文本到圖像 Searcher 模型。

3. 使用 Task Library Searcher API 檢索帶有文本查詢的圖像。

訓練雙編碼器模型

6a25f6c8-e1ae-11ec-ba43-dac502259ad0.png

圖 2:用點積相似距離訓練雙編碼器模型。損失函數可為相關圖像和文本賦予更大的點積(陰影綠色方塊)

雙編碼器模型由圖像編碼器和文本編碼器組成。兩個編碼器分別將圖像和文本映射到高維空間中的嵌入向量。雙編碼器模型計算圖像和文本嵌入向量之間的點積,同時損失函數可為相關圖像和文本賦予更大的點積(更接近),而為不相關的圖像和文本賦予更小的點積(更遠)。

整個訓練過程受到了 CLIP 論文和本 Keras 示例的啟發。圖像編碼器是在預訓練 EfficientNet 模型的基礎上構建而成,而文本編碼器則是基于預訓練通用語句編碼器模型。

  • CLIP

    https://arxiv.org/abs/2103.00020

  • Keras 示例

    https://keras.io/examples/nlp/nl_image_search/

  • EfficientNet

    https://hub.tensorflow.google.cn/google/imagenet/efficientnet_v2_imagenet21k_ft1k_s/feature_vector/2

  • 通用語句編碼器

    https://hub.tensorflow.google.cn/google/universal-sentence-encoder-lite/2

系統隨后會將兩個編碼器的輸出投影到 128 維空間并進行 L2 歸一化。對于數據集,我們選擇使用 COCO,因為該數據集的訓練和驗證分塊會為每個圖像人工生成字幕。請查看配套的 Colab notebook,了解訓練過程的詳細信息

  • Colab notebook

    https://colab.sandbox.google.com/github/tensorflow/tflite-support/blob/master/tensorflow_lite_support/examples/colab/on_device_text_to_image_search_tflite.ipynb

雙編碼器模型可以從沒有字幕的數據庫中檢索圖像,因為在經過訓練后,圖像嵌入器可以直接從圖像中提取語義,而無需人工生成的字幕。

使用 Model Maker 創建文本

到圖像 Searcher 模型

6aba0ad4-e1ae-11ec-ba43-dac502259ad0.png

圖 3:使用圖像編碼器生成圖像嵌入向量,并使用 Model Maker 創建 TFLite Searcher 模型

完成對雙編碼器模型的訓練后,我們可以使用它來創建 TFLite Searcher 模型,該模型可根據文本查詢,從圖像數據集中搜索最相關的圖像。模型創建分為以下三大步驟:

1. 使用 TensorFlow 圖像編碼器生成圖像數據集的嵌入向量。ScaNN 能夠搜索非常龐大的數據集,因此我們結合了 COCO 2014 的訓練和驗證分塊(總計超過 12.3 萬張圖像),以展示其搜索性能。相關代碼請查閱此處(1)

2. 將 TensorFlow 文本編碼器模型轉換為 TFLite 格式。相關代碼請查閱此處(2)

3. 使用 Model Maker,通過 TFLite 文本編碼器和使用以下代碼的圖像嵌入向量創建 TFLite Searcher 模型:

  • 此處(1)

    https://colab.sandbox.google.com/github/tensorflow/tflite-support/blob/master/tensorflow_lite_support/examples/colab/on_device_text_to_image_search_tflite.ipynb#scrollTo=Bp0qBKkyu4jA

  • 此處(2)

    https://colab.research.google.com/github/tensorflow/tflite-support/blob/master/tensorflow_lite_support/examples/colab/on_device_text_to_image_search_tflite.ipynb#scrollTo=6Dzye66Xc8vE

#Configure ScaNN options. See the API doc for how to configure ScaNN. 
scann_options = searcher.ScaNNOptions(
      distance_measure='dot_product',
      tree=searcher.Tree(num_leaves=351, num_leaves_to_search=4),
      score_ah=searcher.ScoreAH(1, anisotropic_quantization_threshold=0.2))

# Load the image embeddings and corresponding metadata if any.
data = searcher.DataLoader(tflite_embedder_path, image_embeddings, metadata)

# Create the TFLite Searcher model.
model = searcher.Searcher.create_from_data(data, scann_options)

# Export the TFLite Searcher model.
model.export(
      export_filename='searcher.tflite',
      userinfo='',
      export_format=searcher.ExportFormat.TFLITE)

請在此處查閱上方代碼中提到的 API doc

  • API doc

    https://tensorflow.google.cn/lite/api_docs/python/tflite_model_maker/searcher/ScaNNOptions

在創建 Searcher 模型時,Model Maker 利用 ScaNN 將嵌入向量編入索引。嵌入向量數據集首先被分為多個子集。在每個子集中,ScaNN 存儲嵌入向量的量化表征。在檢索時,ScaNN 會選擇一些最相關的分區,并按照快速近似距離對量化表征進行評分。這個過程既(通過量化)節省了模型大小又(通過分區選擇)實現了加速。請參閱深入研究資料,詳細了解 ScaNN 算法。

在上方示例中,我們將數據集劃分為 351 個分區(約是我們擁有的嵌入向量數量的平方根),并在檢索期間搜索其中的 4 個分區,即大約是數據集的 1%。我們還將 128 維浮點嵌入向量量化為 128 個 int8 值,以節省空間。


使用 Task Library 運行推理

6b297e00-e1ae-11ec-ba43-dac502259ad0.png

圖 4:使用帶有 TFLite Searcher 模型的 Task Library 運行推理。推理接收查詢文本并返回最近鄰的元數據。我們可以在此找到對應的圖像

如要使用 Searcher 模型查詢圖像,您只需使用 Task Library 的幾行代碼即可,具體如下所示:

from tflite_support.task import text

# Initialize a TextSearcher object
searcher = text.TextSearcher.create_from_file('searcher.tflite')

# Search the input query
results = searcher.search(query_text)

# Show the results
for rank in range(len(results.nearest_neighbors)):
  print('Rank #', rank, ':')
  image_id = results.nearest_neighbors[rank].metadata
  print('image_id: ', image_id)
  print('distance: ', results.nearest_neighbors[rank].distance)
  show_image_by_id(image_id)

可以嘗試一下 Colab 的代碼。此外,歡迎查看更多信息,了解如何使用 Task Library JavaC++ API 集成模型,尤其是在 Android 上的用法。在 Pixel 6 上,每個查詢通常只需要 6 毫秒。

  • 更多信息

    https://tensorflow.google.cn/lite/inference_with_metadata/task_library/text_searcher

以下是一些示例結果:

查詢:A man riding a bike

根據估算的相似距離對結果進行排序。以下是檢索到的圖像示例。請注意,我們僅會顯示附有圖像使用許可的圖像。

6b85b4ae-e1ae-11ec-ba43-dac502259ad0.png

圖 5:所有圖像均來自 COCO 2014 訓練和驗證數據集。圖像 1 由 Reuel Mark Delez 依據《版權歸屬許可證》提供。圖像 2 由 Richard Masoner/Cyclelicious 依據《版權歸屬-相同方式共享許可證》提供。圖像 3 由 Julia 依據《版權歸屬-相同方式共享許可證》提供。圖像 4 由 Aaron Fulkerson 依據《版權歸屬-相同方式共享許可證》提供。圖像 5 由 Richard Masoner/Cyclelicious 依據《版權歸屬-相同方式共享許可證》提供。圖像 6 由 Richard Masoner/Cyclelicious 依據《版權歸屬-相同方式共享許可證》提供。

研究展望

我們將致力于啟用除圖像和文本之外的更多搜索類型,如音頻片段。

審核編輯 :李倩


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

    關注

    45

    文章

    3651

    瀏覽量

    134767
  • API
    API
    +關注

    關注

    2

    文章

    1505

    瀏覽量

    62173
  • 向量
    +關注

    關注

    0

    文章

    55

    瀏覽量

    11679

原文標題:使用 TensorFlow Lite Searcher Library 實現設備端文本到圖像搜索

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

收藏 人收藏

    評論

    相關推薦

    HAL嵌入式系統中的應用

    HAL(Hardware Abstraction Layer Library,硬件抽象層)在嵌入式系統中扮演著至關重要的角色。以下是HAL
    的頭像 發表于 12-02 11:32 ?715次閱讀

    夸克學術搜索受熱捧,成年輕人PCAI應用首選

    近日,夸克發布了一款全新的“學術搜索”AI產品,旨在通過先進的AI技術和億級學術文獻資源,為學術工作者提供更為高效的信息獲取、創作和處理服務。這一創新產品的推出,無疑為學術界注入了新的活力。 據
    的頭像 發表于 11-19 11:23 ?421次閱讀

    OpenAI推出ChatGPT搜索功能

    近日,OpenAI再次邁出了重要的一步,為其廣受好評的ChatGPT平臺添加了一項全新搜索功能。 據悉,這項被命名為“ChatGPT搜索”的新功能,將為用戶帶來前所未有的搜索體驗。以
    的頭像 發表于 11-04 10:34 ?368次閱讀

    OpenAI在ChatGPT增添搜索功能

    近日,OpenAI宣布為其旗艦產品ChatGPT增添全新搜索功能,此舉標志著該公司對Alphabet旗下谷歌的直接挑戰進一步升級。OpenAI周四正式揭曉了這一名為“ChatGPT搜索”的新功能
    的頭像 發表于 11-01 17:01 ?394次閱讀

    科技云報到:大模型時代下,向量數據的野望

    科技云報到:大模型時代下,向量數據的野望
    的頭像 發表于 10-14 17:18 ?268次閱讀

    鴻蒙開發:應用組件跨設備交互(流轉)【跨遷移】

    遷移的核心任務是將應用的當前狀態(包括頁面控件、狀態變量等)無縫遷移到另一設備,從而在新設備上無縫接續應用體驗。這意味著用戶在一臺設備上進行的操作可以在另一臺
    的頭像 發表于 06-11 17:10 ?1306次閱讀
    鴻蒙開發:應用組件跨<b class='flag-5'>設備</b>交互(流轉)【跨<b class='flag-5'>端</b>遷移】

    大模型卷價格,向量數據“卷”什么?

    被大模型“帶飛”這一年,向量數據才剛剛寫下序言
    的頭像 發表于 05-23 09:24 ?1802次閱讀
    大模型卷價格,<b class='flag-5'>向量</b>數據<b class='flag-5'>庫</b>“卷”什么?

    OpenAI正在為ChatGPT開發全新搜索功能

    OpenAI近日傳來令人振奮的消息,其正在為旗下明星產品ChatGPT研發一項全新搜索功能。據悉,這項功能將極大地拓寬ChatGPT的應用范圍,并為用戶帶來更為全面、準確的回答。
    的頭像 發表于 05-10 11:18 ?550次閱讀

    搭載英偉達GPU,全球領先的向量數據公司Zilliz發布Milvus2.4向量數據

    在美國硅谷圣何塞召開的 NVIDIA GTC 大會上,全球領先的向量數據公司 Zilliz 發布了 Milvus 2.4 版本。這是一款革命性的向量數據系統,在業界首屈一指,它首次
    的頭像 發表于 04-01 14:33 ?493次閱讀
    搭載英偉達GPU,全球領先的<b class='flag-5'>向量</b>數據<b class='flag-5'>庫</b>公司Zilliz發布Milvus2.4<b class='flag-5'>向量</b>數據<b class='flag-5'>庫</b>

    與NVIDIA深度參與GTC,向量數據大廠Zilliz與全球頂尖開發者共迎AI變革時刻

    近日,備受關注的 NVIDIA GTC 已拉開序幕。來自世界各地的頂尖 AI 開發者齊聚美國加州圣何塞會議中心,共同探索行業未來,全球領先的向量數據公司 Zilliz 也不例外。作為去年被
    的頭像 發表于 03-26 11:01 ?425次閱讀

    STM32F429的工程標準移植到HAL后中斷向量表異常的原因?

    STM32F429的工程標準移植到HAL后中斷向量表異常
    發表于 03-20 06:02

    Aurix TC2752的中機制是怎么樣的?有無固定的中向量標號和中地址啊?

    AurixTC2752的中機制是怎么樣的?有無固定的中向量標號和中地址啊?是類似于飛思卡爾或者28335那樣的嗎?
    發表于 02-05 06:33

    什么是中斷向量偏移,為什么要做中斷向量偏移?

    當MCU中有兩段或以上程序的時候(第一個程序為用戶BootLoader程序,其他的為APP程序,這個在前期視頻《什么是ISP?什么是IAP》中有講過),APP程序中都需要做中斷向量偏移,那么什么是中斷向量偏移,為什么要做中斷向量
    的頭像 發表于 01-30 09:47 ?1849次閱讀
    什么是中斷<b class='flag-5'>向量</b>偏移,為什么要做中斷<b class='flag-5'>向量</b>偏移?

    蘋果翻新設備集體訴訟賠償翻番:每人獲賠26.18美元

    該案中的翻新設備違約投訴,源自于蘋果在其美國地區維修條款和條件中明文規定,其可以在為客戶的產品提供維修和保養服務時使用全新或是相近表現和穩定性的翻新部件或設備。但原告堅決反對,宣稱翻新或“再制造”的
    的頭像 發表于 01-17 10:47 ?675次閱讀

    騰訊云把向量數據“卷”到哪一步了?

    被大模型“帶飛”這一年,向量數據才剛剛寫下序言
    的頭像 發表于 01-15 09:49 ?1597次閱讀
    騰訊云把<b class='flag-5'>向量</b>數據<b class='flag-5'>庫</b>“卷”到哪一步了?
    主站蜘蛛池模板: 欧美精品一区二区三区视频| 亚洲精品国产拍在线观看| 欧洲精品不卡1卡2卡三卡四卡| 热久久视久久精品2015| 日本妞欧洲| 无颜之月全集免费观看| 亚洲精品国产SUV| 宅男午夜大片又黄又爽大片| a级男女性高爱潮高清试看| 国产精品视频免费视频| 久久这里只有精品2| 欧美精品华人在线| 色欲AV亚洲永久无码精品麻豆| 先锋影音 av| 99精品视频在线| 日韩欧美中文字幕在线| 国产成人永久免费视频| 亚洲欧美成人无码久久久| 蜜桃传媒在线观看入口| 国产成人无码WWW免费视频在线| 亚洲熟妇色自偷自拍另类| 欧美xxxxxbb| 国产永久免费观看视频软件| 综合亚洲桃色第一影院| 国产亚洲精品久久精品69| 中文字幕绝色少妇性| 特级毛片内射WWW无码| 沦为公交两奶头春药高潮迭起| 高清国产一区| 69丰满少妇AV无码区| 午夜国产高清精品一区免费| 麻豆精品无码久久久久久久久| 国产精品久久久久久久久99热| 91亚洲精品福利在线播放| 亚洲AV无码A片在线观看蜜桃| 欧美日韩免费看| 久久国内精品视频| 国产成人拍精品视频网| a久久99精品久久久久久蜜芽| 野花日本手机观看大全免费3| 色欲AV精品人妻一区二区麻豆|