import torch
from torch.autograd import Variable
import torch.nn as nn
import torch.nn.functional as F
class ConvNet(nn.Module):
def __init__(self):
##nn.module子类的函数必须在构造函数中执行父类的构造函数
##下式等价于nn.Module.__init__(self)
super(ConvNet,self).__init__()
self.conv1 = nn.Conv2d(1,10,5)
self.pool1 = nn.MaxPool2d(2,2)
self.conv2 = nn.Conv2d(10,20,5)
self.pool2 = nn.MaxPool2d(2,2)
self.fc1 = nn.Linear(320,50)
self.fc2 = nn.Linear(50,10)
def forward(self,input):
x = self.pool1(F.relu(self.conv1(input)))
x = self.pool2(F.relu(self.conv2(x)))
x = x.view(-1, 20 * 4 * 4)
x = self.fc1(x)
x = self.fc2(x)
return x
net = ConvNet()
print(net) # 输出网络结构
pred = Variable(torch.randn(1,1,28,28))
out = net(pred)
print(out.size()) # 输出结果的形状
Pytorch网络结构形状测试示例
最新推荐文章于 2024-02-02 10:26:57 发布