最近用Keras写模型,其实CNN的结构相对来说还是比较容易理解的,无非就是参数的抉择
1.activition
就是激活函数啦,激活函数就是为了增加神经网络的非线性,不让它产生过拟合,常用的也就那么几种,relu,softmax,sigmoid,tanh,一般来说paper中用的较多的是relu,softmax,sigmoid
2.padding
这个在卷积层和池化层都是可选项,padding='same’表示需要在原图像的边缘补0,目的是使得卷积后的图像还和原图像保持一样大小。
比如一个5X5的图片,被3X3的卷积核进行卷积操作后,图片大小只剩下(5-3+1)(5-3+1)即4X4的大小,相对于原图缩水了有没有。
这样的弊端就是:
1你多来几层卷积,那么图片是不是每次都变小变小
2.边缘的像素被利用的次数非常少,会丢失边缘的像素信息
解决办法就是padding,即像素填充。可选参数项就是padding=‘same’(进行填充)或padding=‘valid’(不填充)
总结:卷积层padding是为了保持图片输入维度和输出维度一致
有的时候池化层也可能padding,一般是为了保持边界信息,充分利用边缘像素
3.regularizer
它是正则项,也叫惩罚项系数。
在越复杂的网络模型中越需要它,可以减少误差,防止过拟合(指模型在训练集中表现良好,测试集不行&#x