阅读他人的代码能够帮助你学习编程。类似的,研究他人开训练出的实例,有助于你构建自己的CNN。
1.classicla network
1.1 LeNet-5
n_H,n_W在减小,n_C在增加
一个或多个卷积层后边跟一个池化层
阅读论文:只需精读第二段
1.2 AlexNet
论文:任务被分到了两个GPU上处理
LRN局部响应归一化层
1.3 VGGNet
2.ResNet
跳远连接输入和输出若维度不同,则需要将输入乘以一个矩阵,以便将其维度与输出一致
3.Inception
网路中的网络(1*1卷积)给神经网络添加了一个非线性函数,从而可以压缩信道数量或者保持信道数量不变
4.迁移学习
当训练集较小时,freeze较多的层。训练集大时,可以freeze前边较少的层,将后边的层重新训练或者干脆改成自己的层。
有越多的数据,需要冻结的层数越少,更够训练的层数越多。
非常建议使用迁移学习
5.数据扩充
1.镜像,裁剪,旋转
2.色彩转换。RGB变换,PCA颜色增强
6.在benchmarks或比赛中的技巧
1.ensembling集成
独立训练几个神经网络并平均其输出
2.测试阶段multi-crop