Nlp 使用Conv1d(Pytorch)嵌入字的in_通道和内核_大小

Nlp 使用Conv1d(Pytorch)嵌入字的in_通道和内核_大小,nlp,pytorch,conv-neural-network,word-embedding,Nlp,Pytorch,Conv Neural Network,Word Embedding,我真的很纠结于Conv1D的输入-我已经阅读了一些指南/解释,但有些东西仍然不太合拍 我有一个一维信号,一个嵌入单词的扁平句子 X=[“天气晴朗”,“巴萨在上一场比赛中有3张红牌”] X=[为X中的X展平U和_焊盘(X)]#展平和零焊盘 X=[ [1,2,3],[0,1,0],[4,5,6],[7,8,9],[0,0,0],[0,0,0],#“its a sunny day”和3-dim单词嵌入 [[-1,2,3],[0,2,0],…,[11,12,13]。#“巴萨在上一场比赛中有3张红牌”3

我真的很纠结于Conv1D的输入-我已经阅读了一些指南/解释,但有些东西仍然不太合拍

我有一个一维信号,一个嵌入单词的扁平句子


X=[“天气晴朗”,“巴萨在上一场比赛中有3张红牌”]
X=[为X中的X展平U和_焊盘(X)]#展平和零焊盘
X=[
[1,2,3],[0,1,0],[4,5,6],[7,8,9],[0,0,0],[0,0,0],#“its a sunny day”和3-dim单词嵌入
[[-1,2,3],[0,2,0],…,[11,12,13]。#“巴萨在上一场比赛中有3张红牌”3-dim单词嵌入
]
i、 e我的
X
大小是
(n_样本,n_单词,嵌入尺寸)
,其中
n_样本
是句子的数量,
n_单词
每个句子中的单词数量和
嵌入尺寸

假设我想要一个跨越每一个单词(或每一个bi/tri-gram)的conv内核- 我假设
in_channels
是单词的数量(即
n_单词
),因为我想跨过每个单词,所以我设置了
kernel\u size=embded\u dim
stride=1

conv1=nn.Conv1d(在信道中=n个字,
out_通道=10,
内核大小=嵌入大小,
步幅=1)
n_样本=2
n_单词=3
嵌入尺寸=12
x=torch.rand(n个样本,n个单词,嵌入尺寸)
l=列表(conv1.parameters())
打印(l[0]。大小)#[1,3,12]
它工作得很好,但后来我看到我们需要在_channels=embed_dim和
kernel_size=n_words
中设置
,但我说我的方法是正确的

那么,在这个1D问题中,应该如何理解信道中的
?很多地方人们写“这是频道的数量”(这是一个相当糟糕的解释)。
对于RGB图像,
in_channel
是深度,例如3,但我很难理解如何在文本分类示例中使用/理解它