通过pytorch实现
其中nn.Conv2d()的参数说明:
#coding=utf-8
import torch
import torch.autograd as autograd
import torch.nn as nn
import torch.nn.functional as F
class TextCNN(nn.Module):
def __init__(self,config):
super(TextCNN,self).__init__()
self.config=config
self.out_channel=config.out_channel
self.conv2=nn.Conv2d(1,1,(2,config.word_embedding_dimension))
self.conv3=nn.Conv2d(1,1,(3,config.word_embedding_dimension))
self.max2_pool=nn.MaxPool2d((self.config.sentence_max_size-2+1,1))
self.max3_pool=nn.MaxPool2d((self.config.sentence_max_size-3+1,1))
self.linear=nn.linear(2,config.label_num)
def forward(self.x):
batch=x.shape[0]
#convolution
x1=F.relu(self.conv2(x))
x2=F.relu(self.conv3(x))
#pooling
x1=self.max2_pool(x1)
x2=self.max3_pool(x2)
#capture and concate the features
x=torch.cat((x1,x2),-1)
x=x.view(batch,1,-1)
#project the features to the labels
x=self.linear(x)
x=x.view(-1,self.config.label_num)
return x1
if __name__=="__main__":
print("processing")
```