在過去的一年里,我花了很多時間研究在微控制器上開展機(jī)器學(xué)習(xí),今天終于可以在 TensorFlow 開發(fā)者峰會上公開展示成果了,這感覺真的很棒。不僅如此,我還能夠演示 TensorFlow Lite 在 Cortex M4 開發(fā)板上運(yùn)行,處理簡單的語音關(guān)鍵字識別。我非常緊張,尤其是還需要克服禮堂的噪音,但我做到了,我讓小小的黃色發(fā)光二極管 (LED) 閃爍,響應(yīng)我的命令!如果您有興趣親自試用,只需 15 美元,即可從 SparkFun 購得含有預(yù)加載示例代碼的開發(fā)板。如果您未能觀看我的演講,歡迎閱讀下面的文字記錄。
注:示例代碼 鏈接
https://www.sparkfun.com/products/15170
大家好,我是 TensorFlow Lite 團(tuán)隊的 Pete Warden,我要介紹一個讓我們非常振奮的新項目。2014 年,我剛剛加入 Google,了解到很多彼時尚未公開但非常刺激的內(nèi)部研究。不過,印象最深的一刻是在見到 Raziel時,他當(dāng)時在語音團(tuán)隊工作,他跟我說他們用的網(wǎng)絡(luò)模型大小只有 13 千字節(jié)!我只接觸過圖像模型,那時,即使是像 Inception 這樣最小的模型也仍然有幾兆字節(jié)大。
當(dāng)他告訴我為什么這些模型一定要這么小時,我更吃驚了。他們需要在智能手機(jī)的數(shù)字信號處理器 (DSP) 和其他嵌入式芯片上運(yùn)行這些模型,以便 Android 能夠在主 CPU 關(guān)閉以節(jié)省電池電量的情況下監(jiān)聽到 “嘿,Google” 等喚醒詞。這些微控制器的隨機(jī)存取存儲器 (RAM) 和閃存往往只有幾十千字節(jié),無法兼容更大的模型。他們也無法依靠云連接,因為持續(xù)開啟任何無線連接都會讓電池電量迅速耗盡。
令我印象深刻的是,語音團(tuán)隊擁有非常豐富的經(jīng)驗,他們花費(fèi)了大量時間進(jìn)行實驗,即使面對嚴(yán)苛的設(shè)備限制,神經(jīng)網(wǎng)絡(luò)產(chǎn)出的結(jié)果也比他們嘗試過的任何傳統(tǒng)方法都好。這讓我想知道它們是否對其他嵌入式傳感器應(yīng)用也有用,而且我想看看我們能否將對這些平臺的支持構(gòu)建到 TensorFlow 中。當(dāng)時,語音社區(qū)里幾乎沒人知道這項正在進(jìn)行的開創(chuàng)性研究,因此,能夠幫助研究者更廣泛地分享這一研究,我感到很興奮。
今天,我非常高興地宣布,我們將在 TensorFlow Lite 中首次為嵌入式平臺提供實驗性支持。為了更好地說明,下面我要演示我口袋里的這個東西了!
這是由 SparkFun 生產(chǎn)的開發(fā)板原型,搭載一個具有 384KB RAM 和 1MB 閃存的 Cortex M4 處理器。這個處理器由 Ambiq打造,它的功耗極低,在很多情況下耗電不到 1 毫瓦,所以依靠一枚小小的紐扣電池供電,它就可以運(yùn)行許多天。
現(xiàn)在我要嘗試做現(xiàn)場演示了,我可是把職業(yè)生涯都攥在手里了,所以祝我好運(yùn)吧!我們的目標(biāo)是,當(dāng)我說出 “是” 這個詞時,這里這個黃色的小 LED 燈會亮起來。希望我們可以用這個攝像頭裝置把這一景象通過大屏幕和直播呈現(xiàn)給每位觀眾。
“是”?!笆恰薄!笆恰薄?/p>
可以看到,這遠(yuǎn)遠(yuǎn)稱不上完美,但在我說出這個詞時,它在努力完成識別工作,而且做得不錯,在聽到不相關(guān)的對話時也沒有亮起來。
那么,為什么這會有用呢?首先,它完全在嵌入式芯片上本地運(yùn)行,無需任何網(wǎng)絡(luò)連接,所以非常適合用于語音界面系統(tǒng)。這個模型自身占用不到 20KB 的閃存存儲空間,TensorFlow Lite 代碼占用 25KB,而且它只需要 30KB 的 RAM 就可以運(yùn)行。
第二,這次演示的軟件完全開源。您可以獲取它的代碼,也可以自行構(gòu)建。我們已經(jīng)將它移植到大量不同的嵌入式芯片中,希望它在未來幾個月可以出現(xiàn)在更多設(shè)備上。您可以在以下網(wǎng)址自行查看代碼:
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/experimental/micro
如需更多文檔,請點(diǎn)擊此處:
https://www.tensorflow.org/lite/guide/microcontroller
如果想要自定義示例,您可以試用此代碼實驗室:
https://g.co/codelabs/sparkfunTF
第三,您可以使用我們提供的這個教程訓(xùn)練自己的模型。它擁有一個開放數(shù)據(jù)集,其中包含 100000 多條志愿者提交的語音,歡迎您通過下方鏈接幫助擴(kuò)展此數(shù)據(jù)集:https://aiyprojects.withgoogle.com/open_speech_recording
關(guān)于這一點(diǎn),其有用之處在于,如果您自己有想要識別的詞或聲音,只需要提供新的訓(xùn)練數(shù)據(jù),您就可以根據(jù)自己的問題調(diào)整這種訓(xùn)練方法。
第四,代碼是 TensorFlow Lite 的一部分,它使用相同的 API、文件格式及轉(zhuǎn)換工具,可以很好地集成到 TensorFlow 生態(tài)系統(tǒng)中,因而更易于使用。
那么,您如何親自試用呢?如果您是在座的觀眾之一,我非常高興地告訴您,當(dāng)您今天下午拿起自己的箱子時,您會發(fā)現(xiàn)屬于自己的 SparkFun Edge 原型開發(fā)板!只需移除標(biāo)簽,打開電池,您應(yīng)該就會發(fā)現(xiàn)它預(yù)加載了 TensorFlow 的 “是” 示例。只要試試對 TensorFlow 說 “是”,您應(yīng)該就有希望看到黃色的燈光!其中還包括您通過串行端口使用自己的代碼對其進(jìn)行編程所需的全部線纜。這些是首批生產(chǎn)的 700 個開發(fā)板,由于線路問題,它比最終設(shè)備耗電要快,但您應(yīng)該可以使用與成品開發(fā)板完全相同的方式進(jìn)行開發(fā)。
如果您是在家中觀看演講,可以花費(fèi) 15 美元,從 SparkFun 訂購?fù)铋_發(fā)板。您還可以在文檔中找到針對許多其他平臺的說明,無論您想在何種設(shè)備上構(gòu)建自己的項目,我們都樂意合作。我們愿意與社區(qū)的開發(fā)者共同協(xié)作,實現(xiàn)各種創(chuàng)意,同時我希望以后能有很多時間用于審核拉取請求!
最后,由衷感謝幫助我們進(jìn)行此原型設(shè)計的每個人,包括 TensorFlow Lite 團(tuán)隊,特別是Raziel、Rocky、Dan、Tim和 Andy;來自 SparkFun的 Alasdair、Nathan、Owen 和 Jim;來自 Ambiq 的 Scott、Steve、Arpit 和 Andre,以及 Arm的許多人士,包括 Rod、Neil 和 Zach!此實驗還處在非常初期的階段,但我迫切希望看到人們用它構(gòu)建的作品。
-
發(fā)光二極管
+關(guān)注
關(guān)注
13文章
1202瀏覽量
66406 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8428瀏覽量
132840 -
tensorflow
+關(guān)注
關(guān)注
13文章
329瀏覽量
60563 -
TensorFlow Lite
+關(guān)注
關(guān)注
0文章
26瀏覽量
643
原文標(biāo)題:發(fā)布適用于微控制器的 TensorFlow Lite
文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論