【社区分享】从零开始学习 TinyML,建立 TensorFlow 深度学习模型(基础原理篇)

TinyML 是什么?如何入门学习?本教程将从介绍 TinyML 基础原理入手,通过代码实例展示,从零开始逐步带你体验使用 Keras 训练小模型,了解如何构建一个完整的基于 TensorFlow 的工程系统和深度学习网络。一起来学习吧!

本文来自社区投稿与征集,作者王玉成,ML&IoT Google Developers Expert,温州大学智能锁具研究院总工程师。了解更多:https://blog.csdn.net/wfing

 

TinyML 简介

1. 概要

Pete Warden 与 Daniel Situnayake 合著了一本介绍在 Arduino 和超低功耗微控制器上如何运行 ML 的书, TinyML:Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers,这本书由 O’Reilly 于 2019 年 12 月 13 号出版。

我作为国内 IoT 和 ML 两个方向的 GDE,对 AI 在嵌入式系统和物联网上的应用也一直在持续关注。得到书本出版的消息之后,就迫不及待的入手了一本英文原板纸质书,看后爱不释手,同时也想以书本的概念为原型,把如何去搭建 TinyML 完整的工程流程分享给大家

 

2. ML 以及 TinyML 简介

在阅读本文之前,我先简单介绍一下 TinyML 。

Machine Learning (ML) 这一个学科,在学术界有 40 年左右的历史,但是前面的 30 多年研究,只是在学术上有一些突破。

真正让 ML 从学界走入产业界的划时代改革的里程碑,源于 2010 年 ImageNet 挑战赛 (ILSVRC)。2012 年,Hiton (ML 业界元老级人物) 课题组首次参加 ImageNet 图像识别比赛,AlexNet 夺得冠军,并碾压了第二名 (SVM) 的分类性能。ML 在工业应用的热情在这一年被彻底点燃。

ML 最近几年已经在工业、消费领域获得了大量的应用,随着云资源的不断完善,研发了更多的激动人心的 AI 模型。云端 AI 的应用,已经获得长足的进步。

在 ML 的工业应用发展的这几年,物联网也处于快速处在发展期。从最早的智能家居,到现在遍地的物联网智能设备。AI 应用逐步从云端走向了设备端,现在设备端的 AI 应用已经占了很大的比例,手机上 AI 的应用已经非常普遍。

但是,在物联网世界里,有数以亿计的体积小、功耗低、资源受限的设备支撑着物联网应用。如何在超低功耗 (mV 功率范围) 的设备上运行人工智能应用,同时又要满足设备长时间低功耗的运行 AI 应用的需求,已经形成了一个新的课题。

TinyML 指的是在 mW 功率的微处理器上,实现机器学习的方法、工具和技术。它连接了物联网设备,边缘计算和机器学习。

TinyML 基金会在 2019 年组织了第一届峰会,这届峰会的成果如下:

  1. TinyML 的技术硬件已经进入了实用性的阶段;

  2. 算法,网络以及低于 100KB 的 ML 模型,已经取得重大突破;

  3. 视觉,音频的低功耗需求快速增长。

TinyML 将在以后几年,随着智能化的发展,获得更快的发展。这一领域也有着巨大的机会。

 

3. 书籍作者介绍

Pete Warden 原是 Jetpac 的 CTO 和创始人。于 2014 年正式加入 Google,现在为移动和嵌入式端 TensorFlow 的技术负责人(Technical Leader)。需要解释一下的是 Jetpac 公司拥有强大的分析社交媒体照片能力,为旅行者提供城市指南服务,这家公司在 2014 年被 Google 收购。

Daniel Situnayake 曾是 Google 的TensrorFlow Lite 的技术推广工程师 (Developer Advocate),同时一直积极参与 Meetup 上 TinyML 社区的工作。他也是美国第一家以工业自动化的方式生产昆虫蛋白质的公司 Tiny Farm 的联合创始人。

两位作者中的一位侧重于物联网上的 AI 技术研发,另一位则侧重于运用 AI 技术去实现工业化,他们强强联合出版了这本书,带我们进一步探索物联网端 AI 的所有技术环节工业化实现,原汁原味的体现了利用 Google 的技术去促进发展的思考脉络。

 

4. 开发环境

作为开发环境,我们只需要在电脑上用 USB 接口实现外设接入就行了。当然根据每一个读者的习惯,可以用自己所熟悉的编译工具来编译这个环境,所有的这些代码都可以在 Windows,Linux 或者 macOS 上运行。当然,已经训练出来许多模型在 Google Cloud 中可以下载。也可以用 Google Colab 来运行所有的代码。就不必要去担心需要拥有独特的硬件开发环境。

推荐使用大概 $15 可以买到的 Spark Fun Edge 开发板。由于在这本书发布的时候。Spark Fun 的第 2 版已经开发出来了,并可支持运行所有的示例项目。读者对硬件开发板的硬件版本兼容性亦无需太多担心。

当然,也有另外两款开发板的支持:Arduino Nano 33 BLE 和 STM32F746G 开发板,开发者可以根据自己的需求灵活选用。

 

我们这一系列主要分享如何用 Arduino Nano 33 BLE 开发板运行最简单的示例代码。

 

5. 软件准备

这本书所有的项目是依赖于 TensorFlow Lite 在微控制器上的开发框架,所依赖的硬件环境,只有几十 kb 左右的存储空间。

我们也知道,对于开源软件来说,由于软件不断的更新,包括优化,bug 修改以及其他设备的支持,造成代码一直在不断的变动。或许书中举出例子的代码跟 Github 的代码不太一致,但是最基本的原则是相通的。

在软件开发中间,我们也可以选择适合自己的 IDE 开发工具。但是由于我(非原书作者,是本人)已经用于 Linux 很多年,是 Vim 的死忠粉,所以我后面给大家介绍的内容全

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值