cnn经过卷积后输出大小计算公式:
如下代码
from torch import nn
import torch
class ResNet(nn.Module):
def __init__(self, vocab_size, seq_len,embedding_len, num_classes=2):
super(ResNet, self).__init__()
self.seq_len=seq_len
self.vocab_size = vocab_size
self.embedding_len = embedding_len
self.word_embeddings = nn.Embedding(vocab_size, embedding_len)
self.conv1=nn.Conv2d(in_channels=1, out_channels=64, kernel_size=7, stride=2, padding=3, bias=False)
def forward(self, x):
x = self.word_embeddings(x)
x = x.view(x.size(0), 1, self.seq_len, self.embedding_len)
x=self.conv1(x)
return x
if __name__ == '__main__':
model = ResNet(vocab_size=50, seq_len=25,embedding_len=16)
x=[[1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5]]
input = torch.autograd.Variable(torch.LongTensor(x))
o = model(input)
print(o.size())
输出结果:
torch.Size([1, 64, 13, 9])