pytorch【Conv2d参数介绍】

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
def __init__(
        self,
        in_channels: int,
        out_channels: int,
        kernel_size: _size_2_t,
        stride: _size_2_t = 1,
        padding: _size_2_t = 0,
        dilation: _size_2_t = 1,
        groups: int = 1,
        bias: bool = True,
        padding_mode: str = 'zeros'  # TODO: refine this type
    ):

in_channels网络输入的通道数。
out_channels网络输出的通道数。
kernel_size卷积核的大小如果该参数是一个整数q那么卷积核的大小是qXq。
stride步长。是卷积过程中移动的步长。默认情况下是1。一般卷积核在输入图像上的移动是自左至右自上至下。如果参数是一个整数那么就默认在水平和垂直方向都是该整数。如果参数是stride=(2, 1),2代表着高h进行步长为21代表着宽w进行步长为1。
padding填充默认是0填充。
dilation扩张。一般情况下卷积核与输入图像对应的位置之间的计算是相同尺寸的也就是说卷积核的大小是3X3那么它在输入图像上每次作用的区域是3X3这种情况下dilation=0。当dilation=1时表示的是下图这种情况。
在这里插入图片描述
groups分组。指的是对输入通道进行分组如果groups=1那么输入就一组输出也为一组。如果groups=2那么就将输入分为两组那么相应的输出也是两组。另外需要注意的是in_channels和out_channels必须能整除groups。
bias偏置参数该参数是一个bool类型的当bias=True时表示在后向反馈中学习到的参数b被应用。
padding_mode填充模式 padding_mode=‘zeros’表示的是0填充

二、通过调整参数来感受这些参数
1、结果1

import torch
import torch.nn as nn

# 输入是一个N=20C=16H=50W=100的向量
m = nn.Conv2d(16, 33, 3, stride=2)
input = torch.randn(20, 16, 50, 100)
output = m(input)

print(output.size())

一张图片 X其大小为 X.shape = [N, C, H, W], 其中 N 表示batch sizeC表示 feature maps 的数量又称之为通道数H 表示图片的高度W表示图片的宽度

在nn.Conv2d()中第一个参数要和输入的通道数相同16。在nn.Conv2d()中第二个参数表示输出的通道数。输出中N=20不变C=33。通过3X3的卷积核、步长为250X100的输入变成了24X49。

torch.Size([20, 33, 24, 49])
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6