Softmax Classifier
1. Prepare Dataset
神经网络希望输入数据最好是在-1到1之间,最好是正态分布,这样训练的效果最好。所以我们需要把图像的像素值进行转换。
from torchvision import transforms
transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.1307, ), (0.3081, ))])
transforms.ToTensor():将图转化为Channel*Width*Height的张量。
transforms.Normalize((0.1307, ), (0.3081, )):前者是均值,后者是标准差(对数据集计算得出)。即使Tensor中的数值符合01分布。
torch.Tensor默认是torch.FloatTensor是32位浮点类型数据,torch.LongTensor是64位整型
import torch
from torchvision import transforms
from torchvision import datasets
from torch.utils.data import DataLoader
import torch.nn.functional as F
import torch.optim as optim
batch_size = 64
transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.1307, ), (0.3081, ))])
train_dataset = datasets.MNIST(root