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

本文仅是博主为记录和加深印象所整理,有兴趣请阅读原文。

原文地址:
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%以下。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值