ResNet是2015年由微软实验室提出的,在目标检测,图像分类等很多任务上表现都非常好。
网络亮点
1.网络特别深
- 随着网络层数不断加深,梯度消失或梯度爆炸问题越来越明显,
- 退化问题,采用残差结构,解决退化问题
2.提出了residual模块
不同层数的网络结构
ResNet34的网络结构
实线与虚线的区别:
实线结构的输入维度和输出维度是一样的可以直接相加
虚线结构的输入维度和输出维度不一样,在第一步不长会改变,在右边分支加上1*1的卷积核,步长也会改变,使用卷积核的个数改变特征图的深度。改变特征图的宽和高以及深度
3.使用batch Normalization加速训练,丢其dropout
BN的目的是使一批(batch)的feature满足均值为0,方差为1的分布规律。BN让每一层的feature map 满足均值为0,方差为1的规律。是调整==一批数据的feature map的每一层的分布。==通俗的理解就是在同一个批次中取所有图像的同一通道的所有像素值的平均值,与求得他们的方差
使用BN需要注意的问题
- 训练时将training参数时设置为true,在验证时,training的参数要设置小一点。
- batch size设置大一点,越大越接近整个样本集的均值和方差,效果更好
- 将BN层放在卷积层和激活层之间,并且不使用bias。
迁移学习
将学习好的网络的浅层网络参数迁移到新的网络,能够让其他网络能够更加快速的新的数据集的高维特征。具有如下特点:
- 能够快速训练出一个理想的结果
- 当数据集较小时能够训练出理想的效果
ps:使用别人的预训练模型参数时,要注意 别人的预处理方式。
方法:
- 载入权重训练所有参数
- 载入权重后只训练最后几层参数,
- 载入权重后在原网络的基础上再添加一个全连接层,仅训练最后一个全连接层
参考链接:
https://zhuanlan.zhihu.com/p/388600557https://www.bilibili.com/video/BV1T7411T7wa/?spm_id_from=333.788