文章学习《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非常非常 小,快,准,易调试。
以前和现在,在移动端的深度学习网络都是在云端完成,比如将一幅图片通过网络发送到远程服务器进行分类,分类结果再返回手机。
随着手机计算能力增加,架构的改善网络复杂度的下降,以及对反应速度的要求,本地学习是跟好的选择。
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%以下。
原文地址:
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%以下。
相关文章推荐
- MobileNet教程:用TensorFlow搭建在手机上运行的图像分类器
- (通用)深度学习环境搭建:tensorflow安装教程及常见错误解决
- (通用)深度学习环境搭建:tensorflow安装教程及常见错误解决
- (通用)深度学习环境搭建:tensorflow安装教程及常见错误解决
- Tensorflow学习教程------tensorboard网络运行和可视化
- 学习笔记:axure 高级教程 5Axure产品原型在手机上如何运行
- c++学习笔记(1)——环境搭建、经典教程推荐及 Visual Studio 2005/2008中如何编译和运行C++程序
- (通用)深度学习环境搭建:tensorflow安装教程及常见错误解决
- Unity IMGUI 的小游戏(井字棋)制作以及怎么发布为安卓apk并且发给女孩子手机上成功运行的教程 - 3D游戏编程学习日志
- (通用)深度学习环境搭建:tensorflow安装教程及常见错误解决
- React Native for Android 学习笔记(一) 操蛋的环境搭建与demo运行
- TensorFlow官方教程学习 Deep MNIST for Experts
- Spring MVC 3学习笔记+教程(一)开发环境搭建和HelloWorld程序
- 如何让手机快速运行AI应用?这有份TVM优化教程
- 分享最近在学习的 TensorFlow 教程 | 提供资源下载链接
- Quick cocos2dx-Lua(V3.3R1)学习笔记(9)-----搭建安卓打包环境,用官方示例anysdk生成apk运行
- tensorflow学习笔记九:将 TensorFlow 移植到 Android手机,实现物体识别、行人检测和图像风格迁移详细教程
- Maven学习笔记六:Maven使用教程(打包和运行)
- TensorFlow 教程 --进阶指南--3.3可视化学习
- jQuery Mobile学习教程系列文章推荐