在 60分钟闪电战 中,我们展示了如何加载数据,如何为我们定义为 nn.Module 的子类的模型提供数据, 如何在训练数据上训练此模型,并在测试数据上测试它。 为了了解发生了什么,我们打印了一些统计数据,因为模型正在训练,以了解训练是否在进步。 然而,我们可以做得更好:PyTorch与TensorBoard集成,TensorBoard是一个用来可视化神经网络训练结果的工具。 本教程使用 Fashion-MNIST dataset 演示了它的一些功能,该数据集可以使用 torchvision.datasets 读入PyTorch。
在本教程中, 我们将学习如何:
读入数据并使用适当的变换(与前面的教程几乎相同)。
设置 TensorBoard.
写入 TensorBoard.
使用 TensorBoard 检查模型体系结构。.
使用 TensorBoard 创建我们在上一个教程中创建的可视化效果的交互版本,使用较少的代码
尤其是, 在第 #5 个知识点中, 我们将会看到:
检查训练数据的几种方法
如何跟踪模型在训练过程中的性能
如何评估我们的模型的性能,一旦它被训练完成后。
我们将从类似于 CIFAR-10教程 中的样板代码开始:
# imports
import matplotlib.pyplot as plt
import numpy as np
import torch
import torchvision
import torchvision.transforms as transforms
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
# transforms
transform = transforms.Compose(
[transforms.ToTensor(),
transforms.Normalize((0.5,), (0.5,))])
# datasets
trainset = torchvision.datasets.FashionMNIST('./data',
download=True,
train=True,
transform=transform)
testset = torchvision.datasets.FashionMNIST('./data',
download=True,
train=False,
transform=transform)
# dataloaders
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,
shuffle=True, num_workers=2)
testloader = torch.utils.data.DataLoader(testset, batch_size=4,
shuffle=False, num_workers=2)
# constant for classes
classes = ('T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle Boot')
# helper function to show an image
# (used in the `plot_classes_preds` function below)
def matplotlib_imshow(img, one_channel=False):
if one_channel:
img = img.mean(d