美文网首页
PyTorch中的Conv2d使用

PyTorch中的Conv2d使用

作者: geekboys | 来源:发表于2020-03-16 23:26 被阅读0次

    在这里记录一下PyTorch中常用的Conv2d的使用,卷积神经网络可以说是做视觉算法的必使用的组件,Conv2d的官方文档
    Conv2d函数的参数为:

    torch.nn.Conv2d(in_channels, out_channels, kernel_size, 
    stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros')
    

    各个参数含义如下:
    . in_channels(int)-Number of channels in the input image
    . out_channels(int)-Number of channels produced by the convolution
    . kernel_size(int or tuple)-Size of the convolving kernel
    . stride(int or tuple,optional)-Stride of the convolution Default:1
    . padding(int or tuple,optional)-Zero-padding added to both sides of the input.Default:0
    . padding_mode(string,optional)-zeros
    . dilation(int or tuple,optional)-Spacing between kernel elements.Default:1
    . groups(int,optional)-Number of blocked connections from input channels to output channels.Default:1
    . bias(bool,optional)-if True.adds a learnable bias to the output.Default:True
    这里着重介绍如下的几个概念:
    stride: 顾明思义就是步长的意思,每次移动的步幅。
    zero-padding:图像四周填0
    dilation:控制kernel点之间的空间距离,可以理解为卷积间隔的大小这个在空洞卷积中非常有用。
    groups:分组卷积 -Convolution层的参数中有一个group参数,其意思就是将对应的输入通道和输出通道进行分组,默认值为1,也就是说默认输出输入的所有通道各位一组。如输入数据大小为90x100x100x32,通道数32,要经过一个3x3x48的卷积,group默认是1,就是全连接的卷积层。
    如果group是2,那么对应要将输入的32个通道分成2个16的通道,将输出的48个通道分成2个24的通道。对输出的2个24的通道,第一个24通道与输入的第一个16通道进行全卷积,第二个24通道与输入的第二个16通道进行全卷积。
    极端情况下,输入输出通道数相同,比如24,group大小也为24,那么每个输出卷积核,只与输入的对应的通道进行卷积。
    输入输出格式:

    input(N,C-in,H-in,W-in)
    output(N,C-out,H-out,W-out)
    

    . N是batch的大小
    . C是通道数量
    . H是输入的高度
    . W是输入的宽度
    其中N和C-in、C-out是人为指定,H,W是原始输入,H-out,W-out是通过公式计算出来的,公式如下:


    相关文章

      网友评论

          本文标题:PyTorch中的Conv2d使用

          本文链接:https://www.haomeiwen.com/subject/djdaehtx.html