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