发布适用于微控制器的TensorFlow Lite

描述

在过去的一年里,我花了很多时间研究在微控制器上开展机器学习,今天终于可以在 TensorFlow 开发者峰会上公开展示成果了,这感觉真的很棒。不仅如此,我还能够演示 TensorFlow Lite 在 Cortex M4 开发板上运行,处理简单的语音关键字识别。我非常紧张,尤其是还需要克服礼堂的噪音,但我做到了,我让小小的黄色发光二极管 (LED) 闪烁,响应我的命令!如果您有兴趣亲自试用,只需 15 美元,即可从 SparkFun 购得含有预加载示例代码的开发板。如果您未能观看我的演讲,欢迎阅读下面的文字记录。

注:示例代码 链接

https://www.sparkfun.com/products/15170

大家好,我是 TensorFlow Lite 团队的 Pete Warden,我要介绍一个让我们非常振奋的新项目。2014 年,我刚刚加入 Google,了解到很多彼时尚未公开但非常刺激的内部研究。不过,印象最深的一刻是在见到 Raziel 时,他当时在语音团队工作,他跟我说他们用的网络模型大小只有 13 千字节!我只接触过图像模型,那时,即使是像 Inception 这样最小的模型也仍然有几兆字节大。

当他告诉我为什么这些模型一定要这么小时,我更吃惊了。他们需要在智能手机的数字信号处理器 (DSP) 和其他嵌入式芯片上运行这些模型,以便 Android 能够在主 CPU 关闭以节省电池电量的情况下监听到 “嘿,Google” 等唤醒词。这些微控制器的随机存取存储器 (RAM) 和闪存往往只有几十千字节,无法兼容更大的模型。他们也无法依靠云连接,因为持续开启任何无线连接都会让电池电量迅速耗尽。

令我印象深刻的是,语音团队拥有非常丰富的经验,他们花费了大量时间进行实验,即使面对严苛的设备限制,神经网络产出的结果也比他们尝试过的任何传统方法都好。这让我想知道它们是否对其他嵌入式传感器应用也有用,而且我想看看我们能否将对这些平台的支持构建到 TensorFlow 中。当时,语音社区里几乎没人知道这项正在进行的开创性研究,因此,能够帮助研究者更广泛地分享这一研究,我感到很兴奋。

今天,我非常高兴地宣布,我们将在 TensorFlow Lite 中首次为嵌入式平台提供实验性支持。为了更好地说明,下面我要演示我口袋里的这个东西了!

这是由 SparkFun 生产的开发板原型,搭载一个具有 384KB RAM 和 1MB 闪存的 Cortex M4 处理器。这个处理器由 Ambiq 打造,它的功耗极低,在很多情况下耗电不到 1 毫瓦,所以依靠一枚小小的纽扣电池供电,它就可以运行许多天。

现在我要尝试做现场演示了,我可是把职业生涯都攥在手里了,所以祝我好运吧!我们的目标是,当我说出 “是” 这个词时,这里这个黄色的小 LED 灯会亮起来。希望我们可以用这个摄像头装置把这一景象通过大屏幕和直播呈现给每位观众。

“是”。“是”。“是”。

可以看到,这远远称不上完美,但在我说出这个词时,它在努力完成识别工作,而且做得不错,在听到不相关的对话时也没有亮起来。

那么,为什么这会有用呢?首先,它完全在嵌入式芯片上本地运行,无需任何网络连接,所以非常适合用于语音界面系统。这个模型自身占用不到 20KB 的闪存存储空间,TensorFlow Lite 代码占用 25KB,而且它只需要 30KB 的 RAM 就可以运行。

第二,这次演示的软件完全开源。您可以获取它的代码,也可以自行构建。我们已经将它移植到大量不同的嵌入式芯片中,希望它在未来几个月可以出现在更多设备上。您可以在以下网址自行查看代码:

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/experimental/micro

如需更多文档,请点击此处:

https://www.tensorflow.org/lite/guide/microcontroller

如果想要自定义示例,您可以试用此代码实验室:

https://g.co/codelabs/sparkfunTF

第三,您可以使用我们提供的这个教程训练自己的模型。它拥有一个开放数据集,其中包含 100000 多条志愿者提交的语音,欢迎您通过下方链接帮助扩展此数据集:https://aiyprojects.withgoogle.com/open_speech_recording

关于这一点,其有用之处在于,如果您自己有想要识别的词或声音,只需要提供新的训练数据,您就可以根据自己的问题调整这种训练方法。

第四,代码是 TensorFlow Lite 的一部分,它使用相同的 API、文件格式及转换工具,可以很好地集成到 TensorFlow 生态系统中,因而更易于使用。

那么,您如何亲自试用呢?如果您是在座的观众之一,我非常高兴地告诉您,当您今天下午拿起自己的箱子时,您会发现属于自己的 SparkFun Edge 原型开发板!只需移除标签,打开电池,您应该就会发现它预加载了 TensorFlow 的 “是” 示例。只要试试对 TensorFlow 说 “是”,您应该就有希望看到黄色的灯光!其中还包括您通过串行端口使用自己的代码对其进行编程所需的全部线缆。这些是首批生产的 700 个开发板,由于线路问题,它比最终设备耗电要快,但您应该可以使用与成品开发板完全相同的方式进行开发。

如果您是在家中观看演讲,可以花费 15 美元,从 SparkFun 订购同款开发板。您还可以在文档中找到针对许多其他平台的说明,无论您想在何种设备上构建自己的项目,我们都乐意合作。我们愿意与社区的开发者共同协作,实现各种创意,同时我希望以后能有很多时间用于审核拉取请求!

最后,由衷感谢帮助我们进行此原型设计的每个人,包括 TensorFlow Lite 团队,特别是Raziel、Rocky、Dan、Tim 和 Andy;来自 SparkFun 的 Alasdair、Nathan、Owen 和 Jim;来自 Ambiq 的 Scott、Steve、Arpit 和 Andre,以及 Arm 的许多人士,包括 Rod、Neil 和 Zach!此实验还处在非常初期的阶段,但我迫切希望看到人们用它构建的作品。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分