您的位置:首页 > 其它

文章学习《MobileNet教程:用TensorFlow搭建在手机上运行的图像分类器》

2017-08-09 15:27 399 查看
本文仅是博主为记录和加深印象所整理,有兴趣请阅读原文。

原文地址:

https://baijia.baidu.com/s?id=1574323979283055&wfr=pc&fr=ch_lst&utm_source=tuicool&utm_medium=referral

移动端运行神经网络成了明显的趋势,Google的MobileNet框架可以完成这样的功能。

MobileNet非常非常 小,快,准,易调试。

以前和现在,在移动端的深度学习网络都是在云端完成,比如将一幅图片通过网络发送到远程服务器进行分类,分类结果再返回手机。

随着手机计算能力增加,架构的改善网络复杂度的下降,以及对反应速度的要求,本地学习是跟好的选择。

1、MobileNets是什么

MobileNet是Google研究的一类卷积神经网络,计算消耗小,运行速度快,适合在移动端是做应用。

MobileNet结构上主要是将3x3的卷积层分为一个3x3深度方向的卷积和一个1x1点对点的卷积。

具体细节和原因在论文:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

https://arxiv.org/pdf/1704.04861.pdf

当然,好处总不能全让你占了,MobileNet的短板就是准确性不如那些大型的神经网络。但它是在功耗和性能中找到了良好的平衡点。

之后对比了 Inception V3和MobileNet的训练和识别过程,MobileNet更快,训练出的模型更小,但准确率要低。

训练好后,将模型应用到Android App中,

目标:

1 在很小的特定数据上重新训练MobileNet

2 测试集准确率达到95%以上

3 占用CPU要小于5%

训练是在电脑上完成的。

为了达到这些目标,我们的计划是:

1生成一个新的训练数据集;

2训练多个MobileNet结构,从而寻找所能够达到准确率目标(95%)的最小型网络;

使用Tensorflow中的Anfroid示例项目完成模型的搭载。可以从TensorFlow的repository下载这个Android示例项目:

git clone https://github.com/tensorflow/tensorflow.git –depth 1

具体的文件夹

tensorflow/examples/android。

用Android Studio打开这个文件夹,编译,然后把生成的APK安装包搭载到你的手机上,你就得到了一个搭载着在ImageNet数据集上训练出的Inception V3模型的图像分类器App,它能够准确地把猫咪跟鸭嘴兽区分开来。

3与在Android上运行的Inception V3做对比;

4将TensorFlow上Android example App中的模型替换为我们的MobileNet;

5大量的测试;

6进行调试,从而将CPU的占用调到5%以下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐