Fashion-MNIST是一个替代MNIST手写数字集的图像数据集,包括一个包含60,000个示例的训练集和一个包含10,000个示例的测试集。每个示例都是一个28x28灰度图像,与来自10个类的一个标签相关联。
数据
torch中的dataset可以实现数据集的下载,将download参数设置为true即可,下载后数据集如下。
对数据的预处理主要是对训练的数据进行随机水平翻转和随机灰度变换。
使用torch中的DataLoader来加载训练集的图片和测试集的图片。
import time
import torchvision
import torch
from torchvision import datasets,transforms
import torch.nn.functional as F
from torch import nn, optim
import os
import pandas as pd
root="./Fashion-MNIST/data"
train_transform = transforms.Compose([
transforms.RandomHorizontalFlip(),
transforms.RandomGrayscale(),
torchvision.transforms.ToTensor(),
])
test_transform = transforms.Compose([transforms.ToTensor()])
mnist_train = datasets.FashionMNIST(root=root, train=True, download=True, transform=train_transform)
mnist_test = datasets.FashionMNIST(root=root, train=False, download=True, transform=test_transform)
train_iter = torch.utils.data.DataLoader(mnist_train, batch_size=100, shuffle=True, num_workers=4)
test_iter = torch.utils.data.DataLoader(mnist_test, batch_size=100, shuffle=False)
模型
这里采用了自建的网络模型,参考了VGG的网络模型,两个 3 ∗ 3 3*3 3∗3的卷积核后面接一个池化层,最后接了两个全连接层。
from torch import nn
class Net