Pytorch中的Conv1d()函数

作者: 寒露lu | 来源:发表于2020-06-08 23:31 被阅读0次
    Conv1d()
    class torch.nn.Conv1d(
            in_channels, 
            out_channels, 
            kernel_size, 
            stride=1, 
            padding=0, 
            dilation=1, 
            groups=1, 
            bias=True)
    
    • in_channels(int) – 输入信号的通道。即为词向量的维度。2维RGB图像卷积中,为3。
    • out_channels(int) – 卷积产生的通道。有多少个out_channels,就需要多少个1维卷积(也就是卷积核的数量)
    • kernel_size(int or tuple) - 卷积核的尺寸,卷积核的大小为(k,),第二个维度是由in_channels来决定的,所以实际上卷积大小为kernel_size*in_channels
    • stride(int or tuple, optional) - 卷积步长
    • padding (int or tuple, optional)- 输入的每一条边补充0的层数
    • dilation(int or tuple, `optional``) – 卷积核元素之间的间距
    • groups(int, optional) – 从输入通道到输出通道的阻塞连接数
    • bias(bool, optional) - 如果bias=True,添加偏置

    举例:实体链接(x,y),x,y是两个实体,当x,y为同一实体,标注为1,否则标注为1。

    conv1 = nn.Conv1d(in_channels=200,out_channels=50, kernel_size=2)
    input = torch.randn(32,8,200)
    # batch_size x entity_len x embedding_size -> batch_size x embedding_size x text_len
    input = input.permute(0,2,1)
    out = conv1(input)
    print(out.size())
    

    这里32为batch_size,8为实体中词的个数,200为词向量。50为卷积核的数量,2为卷积核的尺寸。
    输入一维卷积的时候,需要将32*8*200变换为32*200*8,因为一维卷积是在最后维度上扫的,卷积核大小为200*2,最后out的大小即为:32*50*(8-2+1)=32*50*7,最大池化后的大小为:32*50*1

    相关文章

      网友评论

        本文标题:Pytorch中的Conv1d()函数

        本文链接:https://www.haomeiwen.com/subject/tntjtktx.html