转载需注明出处: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速度和精度。

『1』对比对象
我之前在树莓派上安装过了TensorFlow on Raspberry Pi(Inception v3 model),估计不会有哪个framework能比它更容易部署在树莓派上了——几乎是弹指一挥间就可以完成的零成本工作。所以我就拿它来和ELL进行简单的对比。
文章来源:https://www.codelast.com/
『2』测试数据
我随便找了10张常见物体的图片来做测试。有人会说这么少的样本量能说明什么问题?首先我只想简单快速地测试一下ELL的效果,其次我也没有时间去做严谨的测试。
下面是10张图片,序号依次从1~10:
ELL test image

ELL test image

ELL test image

ELL test image

ELL test image

ELL test image

ELL test image

ELL test image

ELL test image

ELL test image

『3』测试结果

  • 速度

用图片的平均inference时间来计算速度。Tensorflow的model需要预热,我们在预热之后才开始真正算inference时间。同理,ELL的model加载时间也不计算在内。

说明 TensorFlow ELL
一张图片的平均推断时间(秒) 5.477 1.324

文章来源:https://www.codelast.com/
可见,ELL+Darknet model在速度上有明显优势。

  • 精度

结果有点失望。按输出中概率最大的那个分类来算,ELL使用Darknet model在10张图片上的inference结果非常糟糕,根据人工判断,5张图片分类明显错误,其余5张算是正确——这就有点尴尬了。而相比之下,TensorFlow使用Inception v3 model的情况则好得多,除了一张分类错误,其余9张基本上都算是得出了“比较正确”的结论。
下面是详细的测试结果:

图片序号 TensorFlow结果 ELL结果
1 Granny Smith(澳大利亚的一种青绿色苹果) banana(香蕉)
2 mountain bike, all-terrain bike, off-roader chainlink fence(链状栅栏)
3 cellular telephone, cellular phone, cellphone, cell, mobile phone iPod
4 tricycle, trike, velocipede ice lolly(冰棍)
5 warplane, military plane airliner(大型客机)
6 African elephant, Loxodonta africana African elephant(非洲象)
7 hair slide(发夹) piggy bank(零钱罐)
8 notebook, notebook computer notebook(笔记本)
9 trolleybus, trolley coach, trackless trolley trolleybus(无轨电车)
10 tabby, tabby cat tabby(虎斑猫)

文章来源:https://www.codelast.com/
即使inference速度再快,如此糟糕的准确度也是完全不能接受的。所以,我觉得,要改变这个结果,恐怕我只能用ELL CNTK VGG model再测试一遍了。正如我前面的文章所说,由于我的Ubuntu台式机性能低下,因此,我在台式机上编译ELL CNTK VGG model代码的时候,由于编译任务占用太多OS资源,被kernel自动kill掉了。不得已,我只能使用轻量级的Darknet model。所以在我当前条件下,暂时只能到这里为止了。

『4』结论
在ELL+Darknet model的速度确实比较快,但由于精度低的问题,ELL+Darknet model还需改进提高。

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注