本文使用Pytorch实现卷积神经网络CNN,仅为Pytorch新入坑者提供帮助,避免入门到放弃;
数据集为MNIST如文中代码所示;
最后,恭喜各位入坑,在调参的路上越走越远!
import torch
from torch.autograd import Variable
import torch.utils.data as Data
import torchvision # 数据库模块
import torch.nn as nn
import matplotlib.pyplot as plt
LR = 0.001 # 学习率
BATCH_SIZE = 50 # 表示每次选取50个样本作训练
EPOCH = 1 # epoch表示整个数据集重复训练次数
DOWNLOAD_MNIST = False # 是否下载MNIST
train_data = torchvision.datasets.MNIST(root='./mnist',
train=True, # 表示这是训练集
transform=torchvision.transforms.ToTensor(), # 原始数据是array数组,转换为tensor,同时进行归一化
download=DOWNLOAD_MNIST)
# 打印图片
print(train_data.data.size()) # 打印训练集的大小
print(train_data.targets.size()) # 打印训练集标签的大小
‘’使用imshow()函数加载训练集中的图片’‘’
plt.imshow(train_data.data[0].numpy(), cmap='gray')
plt.title('%i' % train_data.targets[0])
plt.show()
# 训练
train_loader = Data.DataLoader(dataset=train_data, batch_size=BATCH_SIZE,
shuffle=True, num_workers=2) # 批量化(包装)处理数据集
test_data = torchvision.datasets.MNIST(root='./mnist', train=False)
‘’‘#测试集shape from (2000, 28, 28) to (2000, 1, 28, 28), value in range(0,1)’‘’
test_x = torch.u