pytorch.nn.Conv1d详解

通读了从论文中找的代码,终于找到这个痛点了!
以下详解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:
在这里插入图片描述
如上图所示,这是其中一个卷积核在数据上的前两步计算过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值