机器学习-完整的模型训练套路(pytorch环境)
一个例子
import torch import torchvision # 准备数据集 from torch import nn from torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linear from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter from model import TuDui train_data = torchvision.datasets.CIFAR10(root="./dataset",train=True,transform=torchvision.transforms.ToTensor(), download=True) test_data = torchvision.datasets.CIFAR10(root="./dataset",train=False,transform=torchvision.transforms.ToTensor(), download=True) # length长度 train_data_size = len(train_data) test_data_size = len(test_data) # format():将字符串中的{}进行格式化 # print("测试集的长度为{}".format(train_data_size)) # 利用DataLoader加载数据集 train_dataLoader = DataLoader(train_data,batch_size=64) test_dataLoader = DataLoader(test_data,batch_size=64) # 创建网络模型 tudui = TuDui() # 损失函数 loss_fun = nn.CrossEntropyLoss() # 优化器 train_rate = 0.01 optimizer = torch.optim.SGD(tudui.parameters(),lr=train_rate) # 设置训练网络的一些参数 # 记录训练的次数 total_train_step = 0 # 记录测试的次数 total_test_step = 0 # 训练的轮数 epoch = 10 write = SummaryWriter("log") for i in range(epoch): tudui.train() for data in train_dataLoader: imgs,targets = data outputs = tudui(imgs) loss = loss_fun(outputs,targets) # 优化器调优 # 梯度清零 optimizer.zero_grad() loss.backward() optimizer.step() if total_train_step % 100 == 0: write.add_scalar("train_loss",loss.item(),total_train_step) total_train_step += 1 tudui.eval() total_test_loss = 0 total_accuracy = 0 with torch.no_grad(): for data in test_dataLoader: imgs,targets = data outputs = tudui(imgs) loss = loss_fun(outputs,targets) accuracy = (outputs.argmax(1) == targets).sum() total_test_loss += loss.item() total_accuracy += accuracy write.add_scalar("test_loss",total_test_step,total_test_loss) total_test_step += 1 torch.save(tudui,"tudui{}.pth".format(i)) write.close()
待补。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)