Pytorch(7)-优化模型参数
优化模型参数
现在我们有了模型和数据,是时候通过优化数据上的参数来训练,验证和测试模型了。训练模型是一个反复的过程;在每次迭代(称为epoch)中,模型都会对输出进行猜测,计算其猜测中的误差(损失),收集误差相对于其参数的导数(如上一节所述)并进行优化这些参数使用梯度下降。有关此过程的更详细的演练,请观看有关3Blue1Brown反向传播的视频。
前置代码
我们从上一节的数据集,数据加载器 和构建模型中加载代码。
import torch
from torch import nn
from torch.utils.data import DataLoader
from torchvision import datasets
from torchvision.transforms import ToTensor, Lambda
training_data = datasets.FashionMNIST(
root="data",
train=True,
download=True,
transform=ToTensor()
)
test_data = datasets.FashionMNIST(
root="data",
train=False,
download=True,
transform=ToTensor()
)
train_dataloader = DataLoader(training_data, batch_size=64)
test_dataloader = DataLoader(test_data, batch_size=64)
class NeuralNetwork(nn.Module):
def __init__(self):
super(NeuralNetwork, self).__init__()
self.flatten = nn.Flatten()
self.linear_relu_stack = nn