多通道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
多通道CNN的更多相关文章
- 基于pytorch的CNN、LSTM神经网络模型调参小结
(Demo) 这是最近两个月来的一个小总结,实现的demo已经上传github,里面包含了CNN.LSTM.BiLSTM.GRU以及CNN与LSTM.BiLSTM的结合还有多层多通道CNN.LSTM. ...
- 一份从入门到精通NLP的完整指南 | NLPer
该小博主介绍 本人:笔名zenRRan,方向自然语言处理,方法主要是深度学习. 未来的目标:人工智能之自然语言处理博士. 写公众号目的:将知识变成开源,让每个渴求知识而难以入门人工智能的小白以及想进阶 ...
- 论文翻译:2018_Source localization using deep neural networks in a shallow water environment
论文地址:https://asa.scitation.org/doi/abs/10.1121/1.5036725 深度神经网络在浅水环境中的源定位 摘要: 深度神经网络(DNNs)在表征复杂的非线性关 ...
- CNN卷积中多通道卷积的参数问题
通俗来讲参数[5,5,3,16],就是用16个卷积核的每一个,分别对3通道进行对应位置,对应3通道的乘积,再加和,输出作为一个输出核的对应位置,知道16个核全部完成. 下图是一个3d的RGB效果,每个 ...
- 视觉机器学习笔记------CNN学习
卷积神经网络是第一个被成功训练的多层神经网络结构,具有较强的容错.自学习及并行处理能力. 一.基本原理 1.CNN算法思想 卷积神经网络可以看作为前馈网络的特例,主要在网络结构上对前馈网络进行简化和改 ...
- 论文笔记之: Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function
Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function CVPR 2 ...
- (六)6.17 Neurons Networks convolutional neural network(cnn)
之前所讲的图像处理都是小 patchs ,比如28*28或者36*36之类,考虑如下情形,对于一副1000*1000的图像,即106,当隐层也有106节点时,那么W(1)的数量将达到1012级别,为了 ...
- CNN网络架构演进:从LeNet到DenseNet
卷积神经网络可谓是现在深度学习领域中大红大紫的网络框架,尤其在计算机视觉领域更是一枝独秀.CNN从90年代的LeNet开始,21世纪初沉寂了10年,直到12年AlexNet开始又再焕发第二春,从ZF ...
- 深度学习之卷积神经网络(CNN)
卷积神经网络(CNN)因为在图像识别任务中大放异彩,而广为人知,近几年卷积神经网络在文本处理中也有了比较好的应用.我用TextCnn来做文本分类的任务,相比TextRnn,训练速度要快非常多,准确性也 ...
随机推荐
- SQL Server和ASP.NET的操作基本操作
ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库: 第二,建立SqlCommand对象,负责SQL语句的执行和存储过程的调用: 第三 ...
- Hibernate课程 初探一对多映射4-3 测试--信息查询
建立双向一对多关系,既可以由一方查询多方信息,同样可以由多方查询一方信息 demo: //查询学生所在班级 public static void showGidByStudent(){ Session ...
- Dictionary and KeyValuePair.
简单一句话: Dictionary 是 由 KeyValuePair结构 组成的集合 The Dictionary<TKey, TValue>.Enumerator.Current pro ...
- Android - 页面返回上一页面的三种方式
今年刚刚跳槽到了新公司,也开始转型做Android,由此开始Android的学习历程. 最近在解很多UI的bug,在解bug过程中,总结了在UI的实现过程中,页面返回上一页面的几种实现方式. 一. 自 ...
- JSON中不能加注释
今天犯了一个白痴级的错误,那就是向JSON数据文件中,很多行后面添加注释(Comment,//). 导致Node.js程序不能读取JSON文件,Server启动失败. Debug时间蛮久,经同事提醒才 ...
- Azure资源模板化部署,伦家不懒都不好意思了
如果老板让你在云平台上部署一套系统,你准备怎么做? 嗯,估计得根据具体需求开通或创建一大堆东西:虚拟机.存储.数据库.虚拟网络……别急还没完,接着还要对这些东西的规模.配置等各方面调整和优化.一系列环 ...
- 监控系统-nagios
https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/ install yum -y install nagios-4 ...
- Linux命令之查看服务进程(ps aux、ps -aux、ps -ef)的运用
执行ps命令即可列出的是当前服务器进程的快照(时间点),如果想要实时动态的显示进程信息,就可以使用top命令. linux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待) 2. 中断( ...
- java IO流——字节流
字节流主要操作byte类型数据,以byte数组为准,主要操作类有InputStream(字节输入流).OutputSteam(字节输出流)由于IputStream和OutputStream都是抽象类, ...
- 使用ABAP Push Channel(APC)开发的乒乓球游戏,可双打
url: https://:/sap/bc/apc_test/ping_pong/game 或者事务码SICF, 输入ping_pong, 按F8: 选中搜索结果,点右键选择Test,即可打开url. ...