当前位置:   article > 正文

多通道CNN

多通道一维cnn变式

在读Convolutional Neural Networks for Sentence Classification 这个文章的时候,它在论文中提出一种模型变种就是
CNN-multichannel,也就是多通道CNN。

和最普通的textcnn相比,这个东西最重要的一个区别就是输入为两个通道,一个通道词向量更新,一个通道词向量不更新。

对这个模型的理解我觉得这里解释的比较好。

具体在pytorch实现的这个模型的时候,需要注意的就是维度的变化情况。

在思考维度变化的过程中,我主要是参考了文君在文本分类模型代码中的注释和这里以及这里的注解。

通过对上面的理解,我觉得核心的一点在于pytorch中的RGB的CNN输入是四个维度的,

在多通道CNN应用到文本分类的情况中,维度变化是这样的
首先,我们进行了一个embedding层的变化,变化之后维度是这样的 (batch_size x vocabulary_len x embedding_dim)
这里我们使用两个通道,另一个通道变化之后维度也是 (batch_size x vocabulary_len x embedding_dim)

接着我们使用了torch.stack([x_static, x_no_static], 1)

让维度变化成了 (batch_size x 2 x vocabulary_len x embedding_dim)

因为在cnn中,我们的输入就是需要四个维度,(batch_size, in_channels, num_seq, embedding_length),这里时候用stack函数把两个通道联合起来了。

这个时候再次理解这个双通道cnn就好理解了,每一个卷积核对应两个feature权重矩阵,每个权重矩阵和各自的通道卷积之后相加得到feature map

转载于:https://www.cnblogs.com/lzida9223/p/10535953.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/242662
推荐阅读
相关标签
  

闽ICP备14008679号