zoukankan      html  css  js  c++  java
  • 卷积网络CNN中各种常见卷积过程

    卷积 Convolution

    卷积核也称为滤波器filter。滤波器大小为k*k*d,其中d为深度,和输入feature map的channel数相同。每一层的filter数量和输出channel数相同。输入的每个channel和对应深度的卷结核进行卷积,然后加和,组成输出的一个channel。

     
    卷积过程
     

    对于filter K^{l+1}K_{i,j,k,l}^{l+1}表示i_{th}个卷积核深度为j的位置在kl列的参数。对于输入F_{i,j,k}^l和输出F_{i,j,k}^{l+1}表示i_{th}个channel的jk列的值。则
    F_{i,j,k}^{l+1}=sum_{c,m,n}F_{c,j+m,k+n}^lK^{l+1}_{i,c,m,n}
    如果考虑到步长s,则
    F_{i,j,k}^{l+1}=sum_{c,m,n}F_{c,j*s+m,k*s+n}^lK^{l+1}_{i,c,m,n}
    参考图像处理常见的卷积核

    1x1卷积

    顾名思义,1x1卷积的卷结核大小为1x1,这样可以节省很多的参数,可以很方便得调整channel数量。1x1卷积可以增加channel维度的特征学习,但缺少feature map维度的特征学习。


     
    1x1卷积
    • 1x1卷积不改变feature map大小,只改变channel数,相比于3x3卷积,1x1计算量更小(算一下,小了多少?3*3c_{in}c_{out}wh => c_{in}c_{out}wh
    • 1x1卷积可以增加非线性

    3D卷积

     
    3dconv

    输入多了时序维度,卷结核相应的也增加了一个维度

    反卷积/转置卷积 Transposed Convolutions/ deconvolution

    两图流。


     
    Transposed Convolutions

     
    反卷积
    • 对输入的图每个像素进行卷积操作
    • 按照stride将上述得到的结果排列,如果重叠则进行加和
    • 多个卷积核重复上述操作,得到新的feature map
      out=(in-1)*stride+kernel_size

    空洞卷积/扩张卷积 Dilated Convolutions

     
    Dilated Convolutions

    多了一个扩张率,扩张率为1时就是普通卷积。



    作者:昭君姐
    链接:https://www.jianshu.com/p/2a0f3a4a9d1d
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    MYSQL性能优化的最佳20+条经验
    MySQL性能分析工具之PROFILE
    理解事务的4种隔离级别
    二进制中1的个数
    滑动窗口最大值
    字符流中第一个不重复字符
    字符串转化为整数
    java字符,字符串,数字之间的转换
    java中数组输出的方式
    java基础知识(1)
  • 原文地址:https://www.cnblogs.com/hanhao970620/p/12321597.html
Copyright © 2011-2022 走看看