一维卷积神经网络理解(torch.nn.Conv1d)

参数介绍

torch.nn.Conv1d(in_channels,       
                out_channels,     
                kernel_size,      
                stride,        
                padding,        
                padding_mode    
                dilation,      
                groups,        
                bias,           
                )
  • in_channels: (int)输入数据的通道数,即对某条训练数据来说由多少组向量表示。例如对于由一维向量表示的一条数据来说,通道数为1;对于文本数据来说,一个句子是由m个单词组成,那么通道数就可以是m
  • out_channels: (int)卷积产生的通道数,可以理解为卷积核的个数
  • kernel_size: (int or tuple)卷积核的大小,若参数为元组,元组中应只有一个元素
  • stride: (int or tuple, optional)卷积的步幅。默认值为1,若为元组,元组中应只有一个元素
  • padding: (int, tuple or str, optional)添加到输入两侧的填充个数。默认值为0
  • padding_mode(string, optional),两侧的填充模式,表示两侧不同的填充方式,可选的模式有"‘zeros’, ‘reflect’, ‘replicate’ 或 ‘circular’. 默认:‘zeros’"
  • dilation:(int or tuple, optional)内核元素之间的间距。默认值为1,即卷积核的每个的元素都是紧挨着的,这个比较难以描述,可以在这里看到直观的动图
  • groups:(int, optional)从输入通道到输出通道的阻塞连接数。默认值为1,输入通道数和输出通道数应该能整除groups,当groups为n时,意味着有n个卷积核,分别把输入数据拆分成n份去获取卷积之后的特征
  • bias:(bool, optional)如果是True,向输出添加可学习的偏差。默认为True

输入输出

input – [batch_size , in_channels , i] (批大小, 输入数据的通道数, 输入数据维度)。
output – ( batch_size , out_channels , i](批大小, 输出数据的通道数, 卷积后数据维度)。
卷积后的维度计算方法一维卷积神经网络理解(torch.nn.Conv1d),(n:输入数据维度,k: 卷积核大小,p: 使用边界填充,s: 步长)。
卷积核维度:[in_channels, kernel_size, out_channels],out_channels代表卷积核的个数,用来提取多维特征。

举个例子

定义如下:

  • in_channels=1, out_channels=1
  • 输入通道:1, 输出通道:1,卷积核:1 一维卷积神经网络理解(torch.nn.Conv1d) 3 一维卷积神经网络理解(torch.nn.Conv1d) 1,步长:1,填充:0
  • 批大小:1, 数据的通道数:1, 数据长度: 5
import torch
import torch.nn as nn
input = torch.randn(1, 1, 5)
conv = nn.Conv1d(in_channels=1, out_channels=1, kernel_size=3, stride=1, padding=0)
out = conv(input)

计算过程:
在这里插入图片描述

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年2月25日 下午6:38
下一篇 2023年2月25日 下午6:39

相关推荐