本文中将根据原理图所示,使用pytorch搭建简单的TextCNN网络结构。尽可能详细的描述每个步骤。
TextCNN的详细过程原理图如下:
以下代码基于https://blog.csdn.net/sunny_xsc1994/article/details/82969867进行修改得到
embedding_size=5, out_channels=2, kernel_size=[2,3,4], max_text_len=7
- embedding_size 每个词向量的长度,在图中是d=5
- out_channels 卷积产生的通道数,有多少个out_channels,就需要多少个一维卷积(也就是卷积核的数量)。图中可以看到每类卷积核,或者说filter,分别有两个,所以out_channels=2
- kernel_size 卷积核的大小,即图中filter的行数。列数和embedding_size相同,因为这是一维的卷积。如图所示,分别是2,3,4
- max_text_len the size of the window to take a max over. 我的理解是,MaxPool1d中会取图中feature maps中的最大值,为此,得确定一个范围,即多长的feature map中的最大值。当长度为feature map