模型训练相关
思路:
- 导入数据集(对数据集转换为张量)
- 加载数据集(使数据集成为可以进行迭代)
- 搭建卷积模型
- 进行模型训练(每训练一轮查看一次在测试集上的准确率)
- 使用tensorboard进行可视化
- 保存训练后的模型
- 加载训练好的模型进行测试.
选择的模型结构
训练模型和评估模型
在conda命令行输入
tensorboard --logdir=“tensorboard --logdir=D:\student\ai-study\02框架学习\logs\mnist”
打开可视化面板
在测试集上的准确率不断上升
训练和评估完整代码
"""
@author:Lunau
@file:022_mnist.py
@time:2024/08/07
@任务:使用pytorch对mnist数据集进行训练和测试
"""
import torch
import torchvision
import time
from torch import nn
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
"""
@root:存放数据集的目录
@train:为True表示是作为训练集
@transforms:导入数据集的同时进行预处理
@download:为True表示从网络下载模型
"""
# 导入数据集 这里没有归一化
train_data = torchvision.datasets.MNIST("./dataset/MNIST", train=True, transform=
torchvision.transforms.ToTensor(), download=True)
test_data = torchvision.datasets.MNIST("./dataset/MNIST", train=False, transform=
torchvision.transforms.ToTensor(), download=True)
# # 加载数据集,方便进行迭代
train_dataloader = DataLoader(dataset=train_data, batch_size=64)
test_dataloader = DataLoader(dataset=test_data, batch_size=64)
# img, target = test_data[0]
# print(img)
# print(target)
# 构建卷积层
class Model(nn.Module):
def __init__(self):
super(Model, self).__init__()
self.model = nn.Sequential(
nn.Conv2d(in_channels=1, out_channels=10, kernel_size