9 卷积、padding,stride、多通道输入输出

卷积和互相关https://zhuanlan.zhihu.com/p/33194385

深度学习中的卷积运算实际上就是互相关运算

感受野

卷积的目的:我们可以通过更深的卷积神经网络使特征图中单个元素的感受野变得更加广阔,从而捕捉输入上更大尺寸的特征。

填充和步幅

填充是指在输入的高和宽方向两侧填充元素,通常是0,使高和宽增大。使输出高宽增加。

步幅是卷积核在高宽方向上以stride为每次移动的距离。使输出高宽减小。

填充和步幅默认高宽相同,可以给定列表分别设置

例如 stride = (2,3)

一般情况下,设置的 stride和padding要满足输入输出的形状相同

多输入通道和多输出通道

彩色图片和灰度图片不同的一点是,彩色图片有除高宽外的第三个维度,颜色通道。

由RGB三个颜色通道组成。

多输入通道

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R8ZbH6OY-1629281018053)(https://i.loli.net/2021/08/14/CVdOUG6rxkZKvSh.png)]

此时的卷积核的通道数与输入通道数相同。输出由不同通道与对应的输入通道卷积运算后相加得到。

多输出通道

如果我们希望输出多通道。

为每个输出通道创建一个卷积核,再把所有卷积核连结,成为一个四维卷积核。

连结方式:stack

K = torch.stack([K,K1,K2])
K.shape # torch.Size([3, 2, 2, 2])
1×1卷积

以通道为特征维,高宽维提供样本,可以用来调整网络的通道数,控制模型复杂度,与全连结层等价

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在PyTorch中处理多通道输入的方法如下: 1. 定义输入数据的形状:多通道输入通常是一个四维张量,形状为 [batch_size, channels, height, width]。其中,batch_size 是输入样本的数量,channels 是通道数,height 和 width 分别是输入图像的高度和宽度。 2. 定义模型的输入层:在模型定义中,需要将输入层的通道数设置为与输入数据一致。例如,对于一个三通道的图像输入,可以使用`nn.Conv2d`的`in_channels`参数设置为 3。 3. 前向传播:在模型的前向传播过程中,多通道输入会被传递给卷积层或其他层进行处理。例如,可以使用`nn.Conv2d`对多通道输入进行卷积操作。 以下是一个简单的示例代码: ```python import torch import torch.nn as nn # 定义输入数据形状 batch_size = 16 channels = 3 height = 32 width = 32 # 创建随机输入数据 inputs = torch.randn(batch_size, channels, height, width) # 定义模型 model = nn.Conv2d(in_channels=channels, out_channels=10, kernel_size=3, stride=1, padding=1) # 前向传播 outputs = model(inputs) ``` 在上面的示例中,我们定义了一个输入数据形状为 [16, 3, 32, 32] 的四维张量,表示一个批次的大小为 16 的三通道图像。然后,我们定义了一个卷积层,输入通道数为 3,输出通道数为 10,使用 3x3 的卷积核进行卷积操作。最后,我们将输入数据传递给模型进行前向传播,得到输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值