[原创] 在树莓派3上使用微软ELL嵌入式学习库(5)

转载需注明出处:https://www.codelast.com/

OS: Arch Linux ARM
ELL:写本文时GitHub中的最新版
TensorFLow: v1.1.0

本文是上一篇文章的续文。
微软于2017年6月底发布了一个主要用于嵌入式系统(例如,树莓派,ARM Cortex-M0等)的机器学习库ELLEmbedded Learning Library嵌入式学习库)。
在之前的文章中,我大费周章,终于在树莓派上把ELL的demo跑起来了,但它实用吗?在本文中,我将简单地测试一下使用Darknet model的inference速度和精度。… Read More

[原创] ELL(Embedded Learning Library,微软嵌入式学习库)文章合集

转载需注明出处:https://www.codelast.com/

微软于2017年6月底发布了一个主要用于嵌入式系统(例如,树莓派,ARM Cortex-M0等)的机器学习库ELLEmbedded Learning Library嵌入式学习库),旨在把部分云端的机器学习计算转移到嵌入式设备上进行。
本系列文章记录了在树莓派3代上把ELL demo跑起来的过程中遇到的各种问题以及解决办法。

➤ 在树莓派3上使用微软ELL嵌入式学习库(1)

➤ 在树莓派3上使用微软ELL嵌入式学习库(2)

➤ 在树莓派3上使用微软ELL嵌入式学习库(3)

➤ 在树莓派3上使用微软ELL嵌入式学习库(4)

➤ 在树莓派3上使用微软ELL嵌入式学习库(5)Read More

[原创] 在树莓派3上使用微软ELL嵌入式学习库(4)

转载需注明出处:https://www.codelast.com/

本文是上一篇文章的续文。
微软于2017年6月底发布了一个主要用于嵌入式系统(例如,树莓派,ARM Cortex-M0等)的机器学习库ELLEmbedded Learning Library嵌入式学习库)。
为了在树莓派上跑起来ELL的demo,需要先在PC上做大量工作,前几篇文章正是记录了这个过程中遇到的种种问题。
从本文开始,我们终于可以把工作转到树莓派上了——不枉前面克服的所有困难,这一刻,我们离成功是如此之近。
注:本文的所有操作,都是在树莓派上运行的。Read More

[原创] 在树莓派3上跑ELL的demo报错:ImportError: build/_darknetReference.so: undefined symbol: cblas_sgemm

转载需注明出处:https://www.codelast.com/

OS:Arch Linux ARM
gcc version:7.1.1 20170516 (GCC)

微软于2017年6月底发布了一个主要用于嵌入式系统(例如,树莓派,ARM Cortex-M0等)的机器学习库ELLEmbedded Learning Library嵌入式学习库)。
本文主要介绍了在树莓派上跑ELL的demo程序时,遇到的一个“undefined symbol: cblas_sgemm”问题的解决办法。… Read More

[原创] 在树莓派3上使用微软ELL嵌入式学习库(3)

转载需注明出处:https://www.codelast.com/

本文是上一篇文章的续文。
微软于2017年6月底发布了一个主要用于嵌入式系统(例如,树莓派,ARM Cortex-M0等)的机器学习库ELLEmbedded Learning Library嵌入式学习库)。
在前几篇文章中,我在Ubuntu PC上对ELL里现成可用的model进行了测试,虽然由于我台式机太老旧的原因,运行速度相当之慢,不过它终究跑通了demo,下一步,我们需要在台式机上,把ELL的model编译到目标平台上——在这里,目标平台指的就是树莓派3。
注:本文的所有操作,都是在台式机上运行的。Read More

[原创] 在树莓派3上使用微软ELL嵌入式学习库(2)

转载需注明出处:https://www.codelast.com/

本文是上一篇文章的续文。
微软于2017年6月底发布了一个主要用于嵌入式系统(例如,树莓派,ARM Cortex-M0等)的机器学习库ELLEmbedded Learning Library嵌入式学习库)。
要在树莓派上使用pre-trained的模型,我们先要在PC上对其进行测试,这个测试说白了就是运行一些Python的demo程序看它们是否能正常工作。而上一篇文章,正是介绍了在Ubuntu PC上的准备工作——如果没有那些准备工作,你连测试的基础条件都不具备。
注:本文的所有操作,都是在台式机上运行的。Read More

[原创] 在树莓派3上使用微软ELL嵌入式学习库(1)

转载需注明出处:https://www.codelast.com/

微软于2017年6月底发布了一个主要用于嵌入式系统(例如,树莓派,ARM Cortex-M0等)的机器学习库ELLEmbedded Learning Library嵌入式学习库)。由于嵌入式设备的计算能力较弱,因此在这些设备上执行一些机器学习的任务——例如实时图像分类——通常速度很慢,所以在这种应用场景下,一般的策略是把请求发送到计算能力强大的云端服务器上去执行,嵌入式设备只作为和用户交互的终端,并不执行关键的计算任务。而微软发布的这个ELL,目标在于把云端的计算任务转移到嵌入式设备上,从而可以使得设备无需联网也能执行这些任务。这个目标看起来很诱人,但它要求ELL的计算速度很快、很节省资源,否则耗时将是不可接受的。… Read More

[原创] 在Ubuntu上使用GParted来调整树莓派TF卡的分区大小

转载请注明出处:https://www.codelast.com/

OS:Ubuntu 14.04 LTS

树莓派的操作系统存储在一张TF卡中,如果我们要备份它,只需要简单地在Ubuntu上使用如下命令即可:

sudo dd if=/dev/sdb of=~/raspberry_pi_os_backup

其中,/dev/sdb 是我的TF卡的设备名称。这样我们就可以把TF卡备份到 raspberry_pi_os_backup 这个文件中了。… Read More

[原创] 在树莓派上跑起来TensorBoard

转载请注明出处:http://www.codelast.com/

本文软硬件环境:
树莓派:3代 Model B V1.2
OS:Arch Linux ARM,32bit

TensorBoard是Tensorflow的可视化工具。当我们用这篇文章里的方法在树莓派上安装好Tensorflow之后,TensorBoard自然就装好了。于是,下面只剩下怎么启动它的问题。
以下是一个例子。… Read More

[原创] 在树莓派上把文字转成语音(Text-To-Speech/TTS)

转载请注明出处:http://www.codelast.com/

本文软硬件环境:
树莓派:3代 Model B V1.2,内存1GB
OS:Arch Linux ARM

有时候,我们需要在程序中添加文字转语音的功能,即通过某个程序或API,把输入的文字朗读出来,也就是通常所说的 text-to-speech(简写为TTS)。我尝试了一个简单的方案——使用Espeak来完成这个任务,在这里记录下来。… Read More

[原创] 加快TensorFlow在树莓派上的执行速度——服务常驻内存

转载请注明出处:http://www.codelast.com/

本文软硬件环境:
树莓派:3代 Model B V1.2,内存1GB
OS:Arch Linux ARM

上一篇文章中,我尝试了加快TensorFlow预测速度的一个方法——模型“预热”,实验证明它非常有效,但那仍然没有解决一个问题:每次运行程序,都要加载一次模型,然后预热N次,这个过程非常耗时,因此减少这部分时间也是非常关键的。把TensorFlow做成一个常驻内存的服务就可以解决这个问题。
解决这个问题的正确姿势是:TensorFlow已经提供了一个叫作 TensorFlow Serving 的library来实现这个需求。但麻烦的是,在树莓派上编译TensorFlow Serving会遇到很多问题,所以,在没有人搞出在树莓派上一键安装的Python wheel包之前,还是算了吧...
因此,下面我用一个很挫的办法来实现一个简陋的TensorFlow service。… Read More

[原创] 加快TensorFlow在树莓派上的执行速度——模型预热

转载请注明出处:http://www.codelast.com/

本文软硬件环境:
树莓派:3代 Model B V1.2,内存1GB
OS:Arch Linux ARM

上一篇文章中,我写了在树莓派上用TensorFlow做的一个深度学习(图像识别)实验,但正如文中所说,50秒执行一次预测的实用性为0。因此,有必要采取一些措施来加快TensorFlow的执行速度,其中一个可行的方法就是“预热”(warm-up),把TensorFlow移植到树莓派上的作者Sam Abrahams已经比较详细地在GitHub上列出了性能测试的结果。依照作者的描述,我也测试了一下,看看那悲催的50秒时间能减少到多少秒。… Read More

[原创] 在树莓派上用TensorFlow玩深度学习(Deep Learning)

转载请注明出处:http://www.codelast.com/

本文软硬件环境:
树莓派:3代 Model B V1.2,内存1GB
OS:Arch Linux ARM

深度学习(Deep Learning)现在这么火,树莓派玩家们当然也不会放过,目前已经有很多树莓派项目都搭上了Deep Learning的车,纯粹出于“好玩”的目的,我在树莓派上也实验了一把,用TensorFlow来识别一张图片里的物体“是什么”。… Read More

[原创] 在树莓派上使用触摸开关(touch switch)

转载请注明出处:http://www.codelast.com/

触摸开关/触摸传感器/轻触开关,是一种通过轻触就可以实现开关的电子器件,生活中随处可见,很多家用电器的操控界面都是触摸开关。
本文中的触摸开关,是在树莓派OS运行的情况下,用来触发某个动作(例如,触摸的时候控制摄像头拍照)。… Read More

[原创] 树莓派项目实践——可用 web 控制的人体感应小夜灯

转载请注明出处:http://www.codelast.com/

A time-controllable human sense light based on Raspberry Pi, which has a web UI to control it.
一个基于树莓派的、(开关)时间可控的人体感应灯,可以通过一个web UI界面开灯、关灯,以及设置成自动模式(在感应到人接近的时候自动点亮灯),并且可以设置自动模式的工作时间段。
这个设备已经放在我家里稳定地运行了很久了,很实用。
 

源代码在Github上,极客学院上有我录制的教程。… Read More