在原代码的基础上添加了tqdm进度条,并使用gpu训练模型
进度条最大值为938,是因为MNIST数据量约60000 = 64(batch-szie) * 938(iteration)。784是通道数(列数),注意区分
# FILE: 学习深度学习/Softmax
# USER: mcfly
# IDE: PyCharm
# CREATE TIME: 2024/9/8 10:17
# DESCRIPTION: softmax + nn.NLLLoss() / nn.CrossEntropyLoss()
import torch
import tqdm
from torchvision import transforms
from torchvision import datasets
from torch.utils.data import DataLoader
import torch.nn.functional as F
transform = transforms.Compose([ #数据将按照列表中定义的顺序经过每一个转换步骤
transforms.ToTensor(), # 将图像数据从PIL图像或NumPy数组格式转换为PyTorch中的Tensor格式。
# 此外,它还将图像的像素值从[0, 255]范围缩放到[0, 1]范围,
# 并且会根据图像的通道数来调整其形状(例如,将HxW的灰度图像转换为1xHxW)
transforms.Normalize((0.1307, ), (0.3081, )) # 对图像进行标准化处理
# 因为图像是单通道的,所以只有一个均值和一个标准差。
# 均值 0.1307 是图像数据集所有像素值的平均值。
# 标准差 0.3081 是图像数据集所有像素值的标准差。
])
train_set = datasets.MNIST( root='./dataset/MNIST', train=True, download=True, transform=transform)
train_loader = DataLoader( train_set, shuffle=True, batch_size=64 )
test_set = datasets