最近在学习卷积神经网络,看了一些入门知识,找了一个简单的卷积神经网络代码来跑,跑成功了,有两个卷积层,想着如果给它再加一层卷积层,会怎样,然后发现得调整nn.Conv2d里面的参数,经过别人是指导终于有了一些思路,以此记录一下,分享给大家。
先把我的完整代码放上来,再分片段来说。
# 手写数字识别--MNIST数据集--卷积
# 准确率:99%
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from torchvision import datasets, transforms
# 定义参数
BATCH_SIZE = 512 # 大概需要2G的显存
EPOCHS = 20 # 总共训练批次数
DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu") # 让torch判断是否使用GPU,建议使用GPU环境,因为会快很多
# 读取数据
# 训练集数据
train_loader = torch.utils.data.DataLoader(
datasets.MNIST('data', train=True, download=True,
transform=transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,))
])),
batch_size=BATCH_SIZE, shuffle=True)
# 测试集数据
test_loader = torch.utils.data.DataLoader(
datasets.MNIST('data', train=False, transform=transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,))
])),
batch_size=BATCH_SIZE, shuffle