zoukankan      html  css  js  c++  java
  • 为什么CNN中的卷积核一般都是奇数

    为什么CNN中的卷积核一般都是奇数
     

    为什么CNN中的卷积核一般都是奇奇数*奇数,没有偶数*偶数的?

    咱们经常见到的多为 3 * 3、5*5;怎么从来没有见过 4*4,6*6 之类的卷积核?无论奇数 or 偶数,都是能够做卷积的呀

    之前学习的时候真的没有想过这些问题,再复习时,觉得全是 Why?说明之前还是没有搞明白

    从AlexNet模型的11*11、5*5、3*3,还有VGG开始统一卷积核为3*3,再到之后的模型,都没有用过 偶数*偶数的卷积核,说明它是有问题的,或者是没有 奇数*奇数的方便

    这一串的问题,原因有两个:

    1.保证了 锚点 刚好在中间

           锚点也就是卷积核滑动时的一个参考点(相对于图像来说,自己理解的,不保证正确,没找到相关资料)。奇数过滤器的锚点正好在中心位置,避免了位置信息发生偏移,如果卷积核是偶数*偶数时,这时候就没有办法确定了锚点了。让谁是锚点,卷积核上下左右移动之后,位置信息都会发生偏移。

    2. same convolution,偶数卷积核会出现问题

           说点题外话

           做卷积时会出现两种问题

              1)图像越来越小;

              2)图像边界信息丢失,即有些图像角落和边界的信息发挥作用较少

           所以有时候我们会在图像的周围填补 0 ,一来减缓图像变小的速度,二来,保证边界信息不丢失。甚至有时候会让输入输出的大小一样,也就是 same convolution 比如下图的VGG模型,卷积时输入输出的大小是保持不变的,只有在池化层是才会缩减一半。

     卷积之后的尺寸大小计算公式为:

    输入图片大小 W×W
    Filter大小 F×F
    步长strides  S
    padding的像素数 P
    输出大小为NxN
    于是我们可以得出

                                                                         

    这里写一下我的理解:公式中Padding 为啥要乘以 2 ,我的理解为 在周围填 0 的话,左右(上下)两边都填补 0 才有意义,保证是对称的

    做same convolution,步长S=1  Padding  P = (F-1)/ 2,也即是:需要在原图边长基础上padding F-1个 0 (这个应该很好理解),当卷积核为偶数时,P就不能保证平均分配到卷积两边  。



  • 相关阅读:
    iOS高仿微信悬浮窗、忍者小猪游戏、音乐播放器、支付宝、今日头条布局滚动效果等源码
    iOS宇宙大战游戏、调试工具、各种动画、AR相册、相机图片编辑等源码
    android支付宝首页、蚂蚁森林效果、视频背景、校园电台、载入收缩动画等源码
    iOS天气动画、高仿QQ菜单、放京东APP、高仿微信、推送消息等源码
    android高仿抖音、点餐界面、天气项目、自定义view指示、爬取美女图片等源码
    Java_WebKit_ZC01
    Java_WebKit
    ZC_RemoteThread
    运行jar_测试代码
    运行jar_命令
  • 原文地址:https://www.cnblogs.com/yumoye/p/12153521.html
Copyright © 2011-2022 走看看