翻譯 | 劉暢Troy
谷歌今天終于釋出了TensorFlow Lite 的開發者預覽!該項目是在5月份的I/O開發者大會上宣布的,據Google網站描述,對移動和嵌入式裝置來說,TensorFlow是一種輕量級的解決方案,支援多平台運作,從機架式伺服器到微小的物聯網裝置。近幾年來,由于其作為機器學習模型的使用已成倍增長,是以移動裝置和嵌入式裝置也出現了部署需求。Tensorflow Lite使機器學習模型裝置能夠實作低延遲的推理。
在本文中,Google展示了TensorFlow Lite的架構構成以及一些功能特性。
輕量級:允許在具有很小的二進制大小和快速初始化/啟動的機器學習模型裝置上進行推理。
跨平台:能夠運作在許多不同的平台上,首先支援Android和iOS平台
快速:針對移動裝置進行了優化,包括顯著提高模型加載時間和支援硬體加速
現在越來越多的移動裝置內建了定制硬體來更有效地處理機器學習帶來的工作負載。TensorFlow Lite支援Android神經網絡API(Android Neural Networks API)利用這些新的加速器硬體。當加速器硬體不可用的時候,TensorFlow Lite會執行優化CPU,這可以確定你的模型仍然可以很快的運作在一個大的裝置上。
下面的關系圖顯示了TensorFlow Lite的構架設計:

元件包括:
TensorFlow模型:一個儲存在磁盤上訓練好的TensorFlow模型。
TensorFlow Lite轉換器:一個将模型轉換為Tensorflow Lite檔案格式的程式。
TensorFlow模型檔案:基于FlatBuffers格式的模型檔案,已針對最大速度和最小尺寸進行了優化。
Tensorflow Lite模型檔案将被部署在一個移動應用程式,其中:
Java API:在Android上對C++API的一個封裝。
C++ API:加載Tensorflow Lite模型檔案和調用解釋器。在Android和iOS上共用同一個庫檔案。
解釋器:采用一組運算符來執行模型。解釋器支援選擇性的運算負荷;沒有運算符大小隻有70kb,當所有的運算符加載時,大小是300kb。正常的移動端的Tensorflow(包含一個規範的運算符操作集)需要1.5M的大小,可以看到解釋器顯著減少了記憶體。
關于選擇Android裝置,解釋器會采用Android Neural Networks API來進行硬體加速,或者如果沒有可用的,預設為CPU執行。
開發人員還可以使用C++ API實作可由解釋器使用的定制的核心。
Tensorflow Lite已經有一些訓練和優化好的支援移動端的模型:
MobileNet: 一種能夠識别1000類不同目标的視覺模型,它是為在移動裝置和嵌入式裝置上高效執行而獨特設計的。
Inception v3: 一個圖像識别的模型,在功能上類似MobileNet,提供更高的精度同時也有較大的尺寸
Smart Reply: 一種裝置級的會話模型,針對即将到來的會話聊天消息,它提供一種觸摸響應。在Android Wear上,第一方和第三方的消息應用程式均使用了此功能。
Inception v3和MobileNet均是在ImageNet資料集上預訓練好的。通過遷移學習,你可以輕松的在你自己的資料集上再訓練這個模型。
正如你可能知道的,通過Tensorflow Mobile API,Tensorflow已經支援了在移動端和嵌入式上部署模型。未來TensorFlow Lite應該被視為Tensorflow Mobile的演化,并随着它的成熟将成為模型部署在移動端和嵌入式裝置上的推薦方案。目前TensorFlow Lite是開發者預覽版,同時Tensorflow Mobile仍然支援APP的開發。
Tensorflow Lite的應用範圍大,目前處于積極開發中。通過這個開發者預覽版,我們有意地啟動了一個帶限制的平台來確定一些最重要的常用模型的性能。我們計劃根據使用者的需求對未來的功能擴充進行優先級排序。我們持續開發的目标是為了降低對開發人員經驗的要求,并能為一系列移動和嵌入式裝置部署模型。
我們非常興奮開發者能夠上手使用Tensorflow Lite。對于其餘的Tensorflow項目,我們計劃使用同一強度來支援和解決外部社群問題。期待你能用TensorFlow Lite做些非常酷的事情。
更多關于Tensorflow Lite的功能和資訊,請點選TensorFlow Lite文檔:
http://tensorflow.org/mobile/tflite
祝大家Tensorflow Lite程式設計快樂。
本文來自 AI 科技大學營微信公衆号