TextCNN 代码+图文对应解释
前提
适合了解TextCNN大体思路,但是对Pytorch不了解的小伙伴阅读
建议:遇到不懂的函数如squeeze()和unsqueeze(),查阅官方文档,或者单独在百度上搜搜这个函数,你就懂了,如图
流程图
模型代码
import torch.nn as nn
import torch.nn.functional as F
class CNN(nn.Module):
def __init__(self):
super(CNN,self).__init__()
# 设置embeding层
self.embedding_choice=embedding_choice
if self.embedding_choice== 'rand':
self.embedding=nn.Embedding(num_embeddings,embedding_dim)
if self.embedding_choice== 'glove':
self.embedding = nn.Embedding(num_embeddings, embedding_dim,
padding_idx=PAD_INDEX).from_pretrained(TEXT.vocab.vectors, freeze=True)
#三层卷积层设置 convolution
self.conv1 = nn.Conv2d(in_channels=1,out_channels=filters_num , #卷积产生的通道
kernel_size