卷积网络keras实现的部分理解


参考

CNN简介(原图到特征图的映射)

1. 卷积有padding和stride,左上顶头开始,直到遍历完输入图像的所有像素(即使靠右靠下还有剩余padding也不再计算)。

奇数图像stride=(2,2),no padding卷积:先减1,再除以2。

图像大小m*m,核k*k,stride=s,输出大小[m/s]-(k-1)/s。[]表上取整。


2. padding=same:0填充,padding=valid:不填充。参考参考2


3. 奇数图像(2,2)池化:先加1,再除以2


4. dropout=p:以概率p舍弃神经元,即其中p不工作。防止过拟合


5. Conv2DTranspose:反卷积,动图

stride-1是在输入图像两像素间插入的0像素数。

no strides的反卷积=no strides的卷积,尺寸的计算公式同为out=in+2*padding-kernal+1。

有stride时: 无padding的反卷积,核从只包含输入图像左上角一个像素的窗口开始滑动,到只包含输入图像右下角一个像素的窗口停止;

无padding的计算公式:out=kernel-1+(stride-1)(in-1)+in

有padding的反卷积,只需用上所有padding,不一定从只含一个像素的窗口开始滑动。


6. Cropping2D:(a,b), (c,d)表示,行从上数裁a行,从下数裁b行;列从左数裁c行,从右数裁d行。


7. predict函数中,verbose=False,表示训练时不显示数据。参考


8. kernal=k, stride=s, 卷积前图像边长为w, 卷积后边长为(w-k)/s+1。若有padding, 则输出图像边长(w-k+2padding)/s+1。反推可得到神经元在前一层的感受野大小。

若第i层感受野中心为p_i,由这个感受野得到第i+1层的一个神经元,位置为p_(i+1),则有p_i=s_i*p_(i+1)+(k_i-1)/2-padding。由此知道感受野中心位置和大小,则感受野可在图中唯一确定。

何恺明对此公式进行了简化,令padding=[k_i/2]下取整。由于坐标只有整数,所以最终近似为p_i=s_i*p_(i+1),级联得到p_0=S*p_i,S是从0到i-1的s连乘。

这样,已知原始图像某一矩形,则可根据矩形的对角两点找到特征图中对应矩形的对角两点,做到图到特征的映射。

智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告