笔记:SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <1MB model size
来源:互联网 发布:ecshop大京东2.5源码 编辑:程序博客网 时间:2024/05/01 06:58
前言:
最近看到个FPGA与Deep Learning相结合的文章,正好看到arxiv上放了这篇文章出来,听说这个SqueezNet有利于将CNN在FPGA上实现,于是简单看了一下。不过作者也没有给出实现结果,但既然是UC Berkeley 和 Stanford发的,说明大牛们都很关注这个事,搞不好哪天FPGA+DL真的就流行用起来了。
文章链接:http://arxiv.org/abs/1602.07360
文章概要:
这篇文章主要就是说,目前的DNN参数有点多了,如果我们有办法把DNN的参数减少,将有利于:
1、实现更高效的分布式训练;
2、训练出轻量级的模型;
3、在FPGA上实现;
那么,怎样在保证精度的前提下压缩网络呢?
作者采用了3个strategies:
1、将一部分3x3的filter替换成1x1的filter;
2、减少输入的channels;
3、在整个网络后期才进行下采样,使得卷积层有比较大的activation maps;
作者设计了一种fire module的结构:
这种fire module的结构由两个(实际上是3个)layers构成:squeeze和expand(expand其实是两个layers)。squeeze和expand其实都是卷积层,只是kernel大小、stride、padding这些参数调过,主要就是用了小kernel。因为Caffe是不支持同一个layer使用不同size的若干个(>1)kernels的,所以作者实际上是使用了两个layers,一个用3x3 kernel,一个用1x1kernel,最后再把它们concat起来。
给一个完整的网络看一下:
上图中这些fire module的参数并不是一样的。在前面几层的fire module,里面用到的kernel个数会少一些,但随着网络越来越深,后面的fire module用到的kernel个数会越来越多。我的理解是,网络越深,特征越抽象,就需要用越多的参数来学习它吧。
更多的调参细节就不多说了,有兴趣可以看看这篇paper原文。
作者在ImageNet 2012上给出了测试结果:
与AlexNet对比,参数减少了50倍,模型也只有4.8M。目前一些比较贵的FPGA,SRAM有8M那么大,是有机会把这个SqueezeNet放到上面跑跑看的。
我的看法:
1、跟PC机相比,因为FPGA的资源真的少得可怜,能够在保证精度的前提下减少网络参数和压缩模型大小,是很有帮助的;
2、但是,仅仅AlexNet这样的精度,不能满足很多场合的需求,作者没有拿SqueezeNet来跟VGG这些大网络来比比,也不知道SqueezeNet做深了之后,它的performance如何。而且也没在其它任务上做测试(如detection,Reid之类的),有点怀疑它的泛化能力,希望后面还会放更多的结果出来看;
3、实现一个SqueezeNet,调参感觉是个大坑。
- 笔记:SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <1MB model size
- SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <1MB model size阅读笔记
- SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <1MB model size阅读笔记
- 【SqueezeNet】SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size
- SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size
- 论文笔记-SqueezeNet: Alexnet-level accuracy whith 50x Fewer Parameters And < 0.5MB Model Size
- SqueezeNet: Alexnet-level accuracy whith 50x Fewer Parameters And < 0.5MB Model Size
- 从AlexNet到squeezenet
- An Analytical Model for a GPU Architecture with Memory-level and Thread-level Parallelism Awareness
- 论文笔记:SqueezeNet
- SqueezeNet论文笔记
- PetShop3.x学习笔记1-Model
- PetShop3.x学习笔记1-Model
- PetShop3.x学习笔记1-Model
- PetShop3.x学习笔记1-Model
- AlexNet学习笔记1-ImageNet Classification with Deep Convolutional Neural Networks
- AlexNet笔记
- Alexnet 笔记
- 汉诺塔游戏算法实现
- 【mysql】忘记密码、权限丢失、mysql启动报错:1067
- Web Service 的工作原理
- pydev 字体颜色设置
- 如何定位和解决Andorid的内存溢出问题(大总结)
- 笔记:SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <1MB model size
- 线程池原理
- 《一个勺子》观后感
- OpenCV实践之路——画出时钟并动态同步系统时间
- vim+python+OpenCV学习四 : 像素通道分割
- Pots(bfs恶心的宽搜)
- HDU 4803 Poor Warehouse Keeper(贪心)
- Create blog posts from RStudio to WordPress
- ifconfig配置网络时,出现“SIOCSIFADDR: No such device”和“eth0:ERROR while getting interface flags:No such dev”