pytorch.nn.Conv1d详解

本文详细解读了PyTorch中的Conv1d方法,包括参数解释、示例使用,以及输出形状的计算原理,重点介绍了in_channels,out_channels,kernel_size等关键参数的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通读了从论文中找的代码,终于找到这个痛点了!
以下详解nn.Conv1d方法


1 参数说明

in_channels(int) – 输入信号的通道。
out_channels(int) – 卷积产生的通道。
kernel_size(int or tuple) - 卷积核的尺寸,经测试后卷积核的大小应为in_channels(行)*kernel_size(列)
stride(int or tuple, optional) - 卷积步长
padding(int or tuple, optional) - 输入的每一条边补充0的层数
dilation(int or tuple, `optional`) – 卷积核元素之间的间距
groups(int, optional) – 从输入通道到输出通道的阻塞连接数
bias(bool, optional) - 如果bias = True,添加偏置

2、具体例子

import torch
import torch.nn as nn
# 创建输入张量
# 可以看作三维数组,举个例子,65个句子
# 每个句子有9个字,每个字生成了144维的词向量
x = torch.randn(65, 9, 144)
# 创建卷积
conv = nn.Conv1d(in_channels=9, out_channels=64, kernel_size=16,stride=8)
out = conv(x)
print(out.shape)

输出结果:torch.Size([65, 64, 17])
解释:卷积操作后的结果分别表示batch数量(与in_channels相关)、卷积核数量(与out_channels相关)、卷积结果的数量(与kernel_sizestride相关)。
前两个结果分量好理解,最后一个结果分享再详细说一下:在计算时可以直接忽略第一个结果分量直接当做一个9x144的二维数组和一个9x16的卷积核做卷积运算,卷积核移动步长为8:
在这里插入图片描述
如上图所示,这是其中一个卷积核在数据上的前两步计算过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值