參考:https://blog.csdn.net/liujh845633242/article/details/102668515
這里我重點說一下1D卷積,2D卷積很好理解,但是1D卷積就不是那么好理解了,以textcnn為例,在對句子長度進行卷積之后,再將詞向量的維度SUM成1維,總而言之,大家需要注意卷積核的深度這一概念。
大家也可以通過代碼來驗證:
conv1 = nn.Conv1d(in_channels=4, out_channels=2, kernel_size=2)
nn.init.constant(conv1.weight, 1)
nn.init.constant(conv1.bias, 0)
input = torch.arange(24).reshape(2, 3, 4).float()
print(input)
# batch_size x max_sent_len x embedding_size -> batch_size x embedding_size x max_sent_len
input = input.permute(0, 2, 1)
print("input:", input.size())
output = conv1(input)
print("output:", output.size())
print(output)