20191116日 SqueezeNet&&&DSD(Dense-Sparse-Dense Training)

**一、**SqueezeNet 发表于ICLR-2017,作者分别来自Berkeley和Stanford,SqueezeNet不是模型压缩技术,而是 “design strategies for CNN architectures with few parameters”

SqueezeNet的核心在于Fire module,Fire module 由两层构成,分别是squeeze层+expand层,如下图所示,squeeze层是一个11卷积核的卷积层,expand层是11 和33卷积核的卷积层,expand层中,把11 和3*3 得到的feature map 进行concat,具体操作如下图2所示

在这里插入图片描述
Fire module输入的feature map为HWM的,输出的feature map为HM(e1+e3),可以看到feature map的分辨率是不变的,变的仅是维数,也就是通道数,这一点和VGG的思想一致。

首先,HWM的feature map经过Squeeze层,得到S1个feature map,这里的S1均是小于M的,以达到“压缩”的目的,详细思想可参考Google的Inception系列。

其次,HWS1的特征图输入到Expand层,分别经过11卷积层和33卷积层进行卷积,再将结果进行concat,得到Fire module的输出,为 HW(e1+e3)的feature map。

fire模块有三个可调参数:S1,e1,e3,分别代表卷积核的个数,同时也表示对应输出feature map的维数,在本文提出的SqueezeNet结构中,e1=e3=4s1

squeezenet.网络结构:
在这里插入图片描述
二、
DSD: Dense-Sparse-Dense Training for Deep Neural Networks ICLR2017
关注如何通过改进训练过程提高传统模型的准确率
DSD是一种新的训练模型的方式,可以提高预训练模型的准确率。DSD和dropout不一样,虽然都是在训练过程中有prune(剪枝)操作,但是DSD是有一定依据来选择去掉哪些connection,而dropout是随机去掉。另外DSD也不是模型压缩算法,DSD算法训练模型目的是提高准确率,而不是模型压缩。

提出了一个全新的DSD的训练流程,来使网络得到更好的训练。先Dense训练,获得一个网络权重;然后spars将网络剪枝,然后继续dense训练。从而获得更好的性能。

与dropout的区别
虽然都是在训练过程中有prune(剪枝)操作,但是DSD是有一定依据来选择去掉哪些connection,而dropout是随机去掉
与模型压缩的区别
DSD的目的是提升准确率,不能带来模型的精简。

在这里插入图片描述
D:将网络正常训练,获得相应的权重

S:将网络剪枝,将小于某值的权重去掉,然后继续训练。

D:将剪枝的权重恢复为0,重新训练网络。

参考链接https://blog.csdn.net/u011995719/article/details/78908755

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值