🐳多维卷积
2021-11-30
| 2023-8-6
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
一般来说,一维卷积用于文本数据,二维卷积用于图像数据,对宽度和高度都进行卷积,三维卷积用于视频及3D图像处理领域(检测动作及人物行为),对立方体的三个面进行卷积 。

一维卷积Conv1d

一维卷积实质是对一个词向量做卷积,如下所示:
notion image
  • 图中的输入的数据维度为8,过滤器的维度为5。卷积后输出的数据维度为8−5+1=4
  • 如果过滤器数量仍为1,输入数据的channel数量变为16,则输入数据维度为8×16
  • 一维卷积常用于序列模型,自然语言处理领域。
 
torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)
Pytorch中nn.Conv1d卷积运算要求输入源是3维,输入源的三个维度分别是:第一个维度代表每个序列的个数即样本数,第二个维度代表每一个序列的通道数,第三个维度代表这个词向量序列,如下所示:

二维卷积Conv2d

Pytorch中nn.Conv2d卷积运算要求输入源是4维,输入源的四个维度分别是:第一个维度代表图片的个数即样本数,第二个维度代表每一张图片的通道数,后面二个维度代表图片的像素矩阵
torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)
 

三维卷积Conv3d

notion image
三维卷积具体思想与一维卷积、二维卷积相同,假设卷积核大小为f1*f2*f3(类似于二维卷积,三维卷积实际计算的时候卷积核是四维的,另一个维度由输入源的通道数决定)
  • 假设输入数据的大小为a1×a2×a3
  • 基于上述情况,三维卷积最终的输出为(a1−f1+1)×(a2−f2+1)×(a3−f3+1)
  • 三维卷积常用于医学领域(CT影响),视频处理领域(检测动作及人物行为)。
Pytorch中nn.Conv3d要求输入源是5维的,输入源的5个维度分别表示为:第一个维度代表样本的个数,第二个维度代表每个样本的通道数,后面三个维度代表三维立体图形的像素矩阵,如下所示:
通道数从输入的2转化为6,一个立体像素矩阵,输入前大小为6*1*1, 卷积核2*1*1,得到结果为(6-2+1)*(1-1+1)*(1-1+1)=5*1*1
  • PyTorch
  • 多输入多输出转置卷积
    目录