e-works数字化企业网  »  文章频道  »  基础信息化  »  移动应用

移动设备上的实时深度学习

2017/11/19    来源:36大数据    作者:Akira Sosa      
关键字:移动设备  GPU  
2017年,在移动应用的深度学习方面取得了一些重大进展。2017年4月,谷歌发布了轻量级神经网络MobileNets。2017年6月,苹果公司发布了Core ML,支持在移动设备上运行机器学习模型。除此之外,最近发布的一些高端设备配备了GPU,它们运行机器学习甚至比MacBook Pro还要快。

    因此,如果你想要发布基于移动设备的深度学习应用,最好先在主流的设备上做一下测试。接下来,我要分享一下MobileUNet的各种指标。
 
    我们主要使用了以下几个设备。
 
  • iPhone 6 Plus
 
  • iPhone 7 Plus
 
  • iPhone 8 Plus
 
  • Sony Xperia XZ(骁龙820)
 
    MobileNets提供了一个叫作alpha的参数用于控制速度和准确性之间的比率,所以我们也在MobileUNet里使用了这个参数。我们选择了4个alpha值(1、0.75、0.5和0.25)和4种尺寸的图像(224、192、160、128)。
 
    下图是速度对比。
 
    大数据
 
    让人感到惊讶的是,速度最快的并不是iPhone 8 Plus,而是iPhone 7 Plus。iPhone 7 Plus真的很快,在实时应用方面完全没有问题。iPhone 6 Plus和骁龙820就没那么快了,特别是当alpha值很大的时候就更慢了。
 
    下图是准确性对比。
 
    大数据
 
    在alpha达到0.25时,准确性开始急速下降。准确性随着alpha的值和图像尺寸呈线性下降。所以,我们不使用alpha 0.25这个值。
 
    下图展示了在骁龙820上运行的速度和准确性。
 
    大数据
 
    如果速度对于我们来说很重要,那么就可以考虑左上角那个,尺寸为128,准确性为0.875 IoU,alpha值为0.5。如果更看重准确性,那么可以选择尺寸为192、alpha值为0.5的那个。
 
    当然,我们也可以为不同的设备使用不同的模型,但这样会增加复杂性。
 
    现在让我们来看看为什么iPhone 7 Plus会比iPhone 8 Plus更快。
 
    之前已经说过,速度取决于每个处理器。iPhone 7 Plus的GPU比iPhone 8 Plus的GPU更加契合我们的神经网络,为此我做了一个实验。
   
    我们将MobileUNet的编码器和解码器分为不同的部分,并测试它们的性能。
 
    大数据
 
    很明显,解码器部分是iPhone 8 Plus的瓶颈所在。我们在解码器中使用了Conv2DTranspose,iPhone 7 Plus的GPU针对Conv2DTranspose进行过优化,而iPhone 8 Plus则没有。
 
    用于基准测试的脚本放在了Gist上。
 
  • Benchmark TensorFlow model in Android
 
  • Benchmark Core ML model in iOS
 
    结论
 
    在移动设备上使用深度学习已经成为一种趋势,在不久的将来,深度学习的应用会越来越方便。
 
    但不是所有的设备都配备了高端GPU,所以进行性能调优是很有必要的。因为不同的处理器具有不同的特点,所以一定要使用真实的设备进行性能测试。
 
    性能测试本身并不难,甚至不需要使用训练过的模型,我们完全可以使用未训练的模型找出性能的瓶颈。
 
责任编辑:李欢
本文来源于互联网,e-works本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供,并已尽力标明作者与出处,如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
相关资料
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐