pytorch之nn.Conv1d详解

Conv1d

nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

参数解读:
in_channels: 输入通道。在文本分类中,即为词向量的维度
out_channels: 卷积产生的通道。有多少个out_channels,就需要多少个1维卷积
kernel_size:卷积核的尺寸(k, in_channels)
stride: 卷积步长
padding: 输入的每一条边补充0的层数
dilation:卷积核元素之间的间距
groups:输入通道到输出通道的阻塞连接数
bias: 如果bias=True,添加偏置

用一个例子来解释Conv1d操作

conv1 = nn.Conv1d(in_channels=256, out_channels=100, kernel_size=3, stride=1, padding=0)
input = torch.randn(32, 35, 256)  # [batch_size, max_len, embedding_dim]
input = input.permute(0, 2, 1)    # 交换维度:[batch_size, embedding_dim, max_len]
out = conv1(input)                # [batch_size, out_channels, n+2p-f/s+1]
print(out.shape)      			  # torch.Size([32, 100, 33])

input的的维度是[batch_size, max_len, embedding_dim],在开始Conv1d前需要将max_len换到最后一个维度用来做一维卷积。卷积后的结果[batch_size, out_channels, n+2p-f/s+1],在纵向维度上(35 + 2*0 - 3)/1 + 1=33。

Conv2d

一般用于图像,给定一个4维的input和filter,计算一个二维卷积就是横向和纵向均卷积。

nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

参考博客:
https://blog.csdn.net/lyj223061/article/details/108709447
https://blog.csdn.net/sunny_xsc1994/article/details/82969867
https://blog.csdn.net/liujh845633242/article/details/102668515

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值