1. 程式人生 > 實用技巧 >在 Flutter 中使用 TensorFlow Lite 外掛實現文字分類

在 Flutter 中使用 TensorFlow Lite 外掛實現文字分類

如果您希望能有一種簡單、高效且靈活的方式把 TensorFlow 模型整合到 Flutter 應用裡,那請您一定不要錯過我們今天介紹的這個全新外掛 tflite_flutter。這個外掛的開發者是 Google Summer of Code(GSoC) 的一名實習生 Amish Garg,本文來自他在 Medium 上的一篇文章《在 Flutter 中使用 TensorFlow Lite 外掛實現文字分類》。

tflite_flutter 外掛的核心特性:

  • 它提供了與 TFLite Java 和 Swift API 相似的 Dart API,所以其靈活性和在這些平臺上的效果是完全一樣的
  • 通過 dart:ffi 直接與 TensorFlow Lite C API 相繫結,所以它比其它平臺整合方式更加高效。
  • 無需編寫特定平臺的程式碼。
  • 通過 NNAPI 提供加速支援,在 Android 上使用 GPU Delegate,在 iOS 上使用 Metal Delegate。

本文中,我們將使用 tflite_flutter 構建一個 文字分類 Flutter 應用 帶您體驗 tflite_flutter 外掛,首先從新建一個 Flutter 專案 text_classification_app 開始。

初始化配置

Linux 和 Mac 使用者

install.sh 拷貝到您應用的根目錄,然後在根目錄執行 sh install.sh,本例中就是目錄 text_classification_app/

Windows 使用者

install.bat 檔案拷貝到應用根目錄,並在根目錄執行批處理檔案 install.bat,本例中就是目錄 text_classification_app/

它會自動從 release assets 下載最新的二進位制資源,然後把它放到指定的目錄下。

請點選到 README 檔案裡檢視更多 關於初始配置的資訊

獲取外掛

pubspec.yaml 新增 tflite_flutter: ^<latest_version>詳情)。

下載模型

要在移動端上執行 TensorFlow 訓練模型,我們需要使用 .tflite 格式。如果需要了解如何將 TensorFlow 訓練的模型轉換為 .tflite

格式,請參閱官方指南

這裡我們準備使用 TensorFlow 官方站點上預訓練的文字分類模型,可從這裡下載

該預訓練的模型可以預測當前段落的情感是積極還是消極。它是基於來自 Mass 等人的  Large Movie Review Dataset v1.0 資料集進行訓練的。資料集由基於 IMDB 電影評論所標記的積極或消極標籤組成,點選檢視更多資訊

text_classification.tflitetext_classification_vocab.txt 檔案拷貝到 text_classification_app/assets/ 目錄下。

pubspec.yaml 檔案中新增 assets/

assets:    
  - assets/

現在萬事俱備,我們可以開始寫程式碼了。