Pytorch Conv1d()

Conv1d

一:参数介绍

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

  • in_channels(int) – 输入信号的通道。在文本分类中,即为词向量的维度
  • out_channels(int) – 卷积产生的通道。有多少个out_channels,就需要多少个1维卷积,实际上就是卷积核的数目。
  • kernel_size(int or tuple) - 卷积核的尺寸,卷积核的大小为(k,),第二个维度是由in_channels来决定的,所以实际上卷积大小为kernel_size*in_channels
  • stride(int or tupleoptional) - 卷积步长
  • padding (int or tupleoptional)- 输入的每一条边补充0的层数
  • dilation(int or tuple, `optional``) – 卷积核元素之间的间距
  • groups(intoptional) – 从输入通道到输出通道的阻塞连接数
  • bias(booloptional) - 如果bias=True,添加偏置

二:怎么去理解这些参数

例如我们输入的矩阵是:(N * in_channels * Lin),这里N是批次大小,in_channels是我们向量的行,Lin是我们向量的列

官方文档说我们最后输出是(N,out_channels,Lout)

具体是怎么做的呢?

 in_channels(int) – 输入信号的通道。在文本分类中,即为词向量的维度,也可以理解是输入数据的行

out_channels(int) – 卷积产生的通道。相当于我们希望输出的行。一个卷积核对应一组输出,N个卷积核对应N组输出。而卷积核的数量不用我们给出,我们只要给出kernel_size就行

kernel_size(int or tuple) - 卷积核的尺寸,卷积核的大小为(k,),第二个维度是由in_channels来决定的,所以实际上卷积大小为kernel_size*in_channels

我们输出的矩阵是(N,out_channels,Lout)

而Lout = (Lin - kernel_size + 1) / stride 

例如:

conv1 = nn.Conv1d(in_channels=256,out_channels=100,kernel_size=2)
input = torch.randn(32,256,35)
out = conv1(input)
print(out.size())
#输出结果为:(32,100,34)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值