CNN图像分类的tricks
Baseline:
预处理:
-
随机抽取一张图片,解码成32位浮点型的[0,255]的像素值形式
-
随机在原图上裁剪一片比例在[3/4, 4/3],面积在[8%, 100%]的矩形区域,然后resize到224x224
-
按0.5的概率对上一步的图片水平翻转
-
在[0.6, 1.4]之间均匀采样系数用于缩放色调、饱和度和亮度(HSB)
-
按正态分布N(0, 0.1)采样系数,用于添加一个PCA噪声
-
在图片的RGB通道上分别减去123.68,116.779,103.939然后除以58.393,57.12,57.375进行归一化。
验证:
保持验证图片的比例不变,将短边缩放到256,然后在其正中裁剪一块224x224的区域,并按和预处理中一样进行归一化。
参数初始化:
卷积层和全连接层的参数都是用Xavier算法初始化,使用中会将参数在[-a,a]之间均匀随机选取,a又由输入输出通道数决定a=sqrt(6/(in_channels+out_channels))。所有的bias都初始化为0。BN层的γ初始化为全1向量,β初始化为全0向量。
训练过程: