nlp - (NLP, TextCNN) 为什么 in_channels 等于 torch.nn.Conv1d 中的嵌入大小?
问题描述
如果我们应用torch.nn.Conv2d
到可以理解为 3 个二维矩阵的“RGB”图像,那么参数in_channels
对应于 3 个通道“R”、“G”和“B”。而在我看来,一个形状为的嵌入句子[sentence length, embedding size]
应该被认为是1个二维矩阵,那么在这种情况下,为什么参数in_channels
不是1而是嵌入大小在torch.nn.Conv1d
,而不是相同的含义torch.nn.Conv2d
?
你能解释一下nlp / TextCNN中inin_channels
的真正含义是什么吗?torch.nn.Conv1d
为什么不同于torch.nn.Conv2d
?
谢谢!
解决方案
在使用 Conv1d 时,嵌入维度可以视为 NLP 中的 in_channels。
解释
-假设您尝试输入一个长度为“N”的句子,如下所示-
我是这个...... N的用户。
所有这些单词都转换为单词嵌入,比如E维。
这个向量的维度是 --> [N, E]
如果你考虑一批批量大小为“B”的输入句子 --> [B, N, E]
因此,现在您可以将其称为:-
x = nn.Conv1d(in_channels = E, out_channels = .......)
看看 - https://gist.github.com/spro/c87cc706625b8a54e604fb1024106556
推荐阅读
- javascript - 编写 jQuery 以在点击时更改动态 iframe 的尺寸
- javascript - 如何使用 System.js 导入类似服务的单例类?
- javascript - 无法让过滤器方法适用于我的 flatList
- python - 如何执行另一个机器人命令
- python - Python websocket客户端关闭连接
- docker - 来自一个 Dockerfile 的特定于环境的 docker 映像
- python - 如何将 USB 操纵杆游戏手柄数据输出转换为角度
- python - findCirclesGrid 找不到内部空心的子模式
- javascript - 如果开发人员控制台处于活动状态,画布无法正常工作
- assembly - 如何在文件处理中使用 0ah 和 0dh (Irvine)