本代码参考廖星宇《深度学习入门之PyTorch》中的示例代码,手动复现而来,仅供个人学习使用,侵删。
#卷积神经网络实现MNIST手写数字分类
import torch
import torch.nn as nn
import torch.optim as optim
from torch.autograd import Variable
from torch.utils.data import DataLoader
from torchvision import datasets, transforms
#定义卷积神经网络
class CNN(nn.Module):
def __init__(self):
super(CNN, self).__init__()
self.layer1 = nn.Sequential(
nn.Conv2d(in_channels=1, out_channels=16, kernel_size=3), # b, 16(高度), 26, 26
nn.BatchNorm2d(16),
nn.ReLU(inplace=True)
)
self.layer2 = nn.Sequential(
nn.Conv2d(16, 32, kernel_size=3), # b, 32, 24, 24
nn.BatchNorm2d(32),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=2, stride=2) # b, 32, 12, 12
)
self.layer3 = nn.Sequential(
nn.Conv2d(32, 64, kernel_size&#