textcnn网络图及其pytorch实现

textcnn网络图及其pytorch实现_第1张图片
通过pytorch实现
其中nn.Conv2d()的参数说明:
textcnn网络图及其pytorch实现_第2张图片
textcnn网络图及其pytorch实现_第3张图片
textcnn网络图及其pytorch实现_第4张图片
textcnn网络图及其pytorch实现_第5张图片

#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")
		```


你可能感兴趣的:(机器学习算法)