大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
转自:https://blog.csdn.net/xuanwu_yan/article/details/75042456
方法
我们回顾一下ResNet,大意就是本层的激活值与本层的输入,作为本层的输出。换一种方式理解,第ll层的激活值不仅仅影响l+1l+1层,而且还影响l+2l+2层。那么由此及广,我们可不可以让第l层的激活值一直影响到第l+kl+k层呢?这样就有了本文的基本思想,稠密就是从这里产生。好处如下:
- 与传统的卷积网络相比,需要更少的参数就能得到相同的效果。这里指出一点,参数少并不意味计算量降低,实验前向速度并未比ResNet降低。作者给出的原因是每层的输入包括之前的所有层,所以可以避免传统网络中冗余的层;
- Densenet改变了传统网络反向传递时,梯度(信息)传播方式,由线性变成树状反向,这样的好处就在于减少了梯度消失的可能,并且加速训练,有利于更深层网络的训练;
- 作者发现稠密的网络结构有类似正则功能,在小数据集合上更好的避免过拟合。
实现
对于输入图像x0x0定义一个LL层的网络,他的第ll层是一个非线性变换(如BN,ReLU,Conv等),设为Hl(⋅)Hl(·),输出为xlxl,那么我们一般有
,在ResNet中我们有
。作者指出由于单纯使用求和操作可能会干扰网络信号的传递。于是提出不是简单求和,而是将前面的结果放入新的channel通道,然后进行非线性操作,于是我们有
。同ResNet一样,这里的
Hl(⋅)Hl(·)
是BN+ReLU+Conv的组合。但是我们可以看到在上面的
[x0,x1,...,xl−1][x0,x1,…,xl−1]
如果维度的尺寸不同的话,无法进行操作的,于是作者使用了模块的方式,模块内部没有Pooling操作,这样避免了形状不同。模块之间有Pooling操作。如下图
作者又尝试了
Hl(⋅)Hl(·)
输出channels个数(记为
kk
)对消耗和结果的影响,channels个数越多网络参数越多,计算量更大。
- Hl(⋅)Hl(·)是BN+ReLU+Conv(1×1)+BN+ReLU+Conv(3×3)的组合,这种网络记为Densenet-B
- 假设Dense模块之间的卷积输出channels个数是模块输出层数的θθ倍,如果θ<1θ<1网络记为Densenet-C,一般我们设θ=0.5θ=0.5
- 同时上面两种情况记为网络Densenet-BC
网络参数不放了,直接结果:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189039.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...