zoukankan      html  css  js  c++  java
  • 动手深度学习五---二维卷积层

    1、二维互相关运算

    在二维卷积层中,一个二维输入数组和一个二维核数组通过互相关运算输出一个二维数组;核数组在卷积运算中又称卷积核、过滤器、卷积窗口;输出形状取决于卷积核和输入的形状

    如,二维输入数组(3X3)与二维核数组(2X2)互相关运算,产生结果是一个二维数组(2X2),卷积核按照从左往右,从上往下的顺序依次在输入数组上滑动,计算结果

    输⼊形状是nh× nw,卷积窗口形状是kh× kw,输出形状

    (nh− kh+ 1) × (nw− kw+ 1).

    2、二维卷积层

    二维卷积层将输入和卷积核做互相关运算,然后加上一个标量偏差得到输出。卷积层的模型参数包括了卷积核和标量偏差

    3、填充和步幅---卷积层的超参数

    (1)填充

    填充是指在输入的高、宽两侧填充元素(通常为0)。在高的两侧一共填充ph⾏,在宽的两侧一共填充pw列,则输出的高和宽也会分别增加ph和pw。很多情况下,会设置ph=kh-1,pw=kw-1来使输入和输出具有同样的形状。当kh为奇数时,在高的两侧分别填充ph/2行;为偶数时,在输入的顶端填充⌈ph/2⌉行,在低端填充⌊ph/2⌋行

    输⼊形状是nh× nw,卷积窗口形状是kh× kw,在⾼的两侧⼀共填充ph⾏,宽的两侧⼀共填充pw列,输出形状

    (nh− kh+ ph+ 1) × (nw− kw+ pw+ 1),

    (2)步幅

    卷积窗口按照从左往右,从上往下的顺序依次在输入数组上滑动,每次滑动的行数和列数称为步幅,高和宽滑动的步幅可以不一样。

    输入为5X5,卷积核为3X3,高宽步幅为2,填充为1的卷积计算过程如下,输出为3X3

     输⼊形状是nh× nw,卷积窗口形状是kh× kw,在⾼的两侧⼀共填充ph⾏,宽的两侧⼀共填充pw列,⾼上步幅为sh,宽上幅为sw,输出形状

    ⌊(nh− kh+ ph+ sh)/sh⌋ × ⌊(nw− kw+ pw+ sw)/sw

    若,ph=kh-1,pw=kw-1,输出形状

    ⌊(nh+sh−1)/sh⌋×⌊(nw+sw−1)/sw

    填充用来增加输出的宽和高,使输出和输入宽高相同;步幅用来减少输出的宽和高

     4、多输入通道

    彩色图像有高h和宽w2个维度外还有RGB(红、绿、蓝)3个颜色通道,则可以表示为3*h*w的多维数组,其中3这一维称为通道维

    当输入数据含有多个通道时,需要构造一个输入通道数与输入数据通道数相同的卷积核。假设输入数据通道数为ci,卷积核的输入通道数同样为ci.设卷积核窗口形状为kh× kw,当ci>1时,为每个输入通道各分配一个形状为kh× kw的核数组,把这ci个数组在输入通道维上连结,即得到一个ci× kh× kw的卷积核

    如下图,2个输入通道的互相关计算

    5、多输出通道

    卷积核输⼊通道数和输出通道数分别为ci和co,⾼和分别为kh和kw,卷积核的形状即co× ci× kh× kw

    如图,输入通道数为3,输出通道数为2,卷积核形状为2 x 3 x 1 x 1

  • 相关阅读:
    Web Api 模型绑定 二
    C#关键字
    ASP.NET Core MVC 过滤器
    EF性能优化篇一
    Linq
    HTTP协议
    Linux进程管理(11)
    Linux网络配置(10)
    Django模板修炼
    递归
  • 原文地址:https://www.cnblogs.com/slfh/p/10938998.html
Copyright © 2011-2022 走看看