当前位置: 首页 > news >正文

小土堆pytorch

Dataset的使用

  • torch.utils.data.Dataset:数据集的抽象类,需要自定义并实现 __len__(数据集大小)和 __getitem__(按索引获取样本)。

tensorboard 主要是训练过程可视化

transform 图像转化

        图片->tensor 

trans = transforms.ToTensor()

用法:首先要创建一个自己的工具 然后再使用

即:先定义再调用

torchvision

dataloader用于从 Dataset 中按批次(batch)加载数据

  • batch_size: 每次加载的样本数量。
  • shuffle: 是否对数据进行洗牌,通常训练时需要将数据打乱。
  • drop_last: 如果数据集中的样本数不能被 batch_size 整除,设置为 True 时,丢弃最后一个不完整的 batch

torch.nn

super是为了告诉 Python "先执行父类的初始化代码,然后再执行我的初始化代码"

卷积操作:使用卷积核(Kernel)在输入图像上滑动,提取特征,生成特征图(Feature Maps)。

一个矩阵+卷机核   通过相乘然后累加

stride就是步长 padding是填充

关于in_channel和out_channel

池化:通常在卷积层之后,通过最大池化或平均池化减少特征图的尺寸,同时保留重要特征,生成池化特征图(Pooled Feature Maps)。

sequential 方便建立层级结构

损失函数与反向传播

损失函数衡量目标和输出的差距 反向传播通过计算梯度 来更新参数实现loss最小化

模型保存

训练套路:准备数据、加载数据、准备模型、设置损失函数、设置优化器、开始训练、最后验证、结果聚合展示

Dataset的使用

torch.utils.data.Dataset是PyTorch中用于表示数据集的抽象类,自定义数据集需继承该类并实现__len____getitem__方法。

TensorBoard训练可视化

TensorBoard通过记录训练过程中的标量(如损失、准确率)、图像、计算图等实现可视化。

from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs")  # 日志目录
writer.add_scalar("Loss/train", loss.item(), epoch)  # 记录损失
writer.close()

图像转换(Transform)

torchvision.transforms提供常见的图像预处理操作,需将图像转换为张量(Tensor)并归一化:

from torchvision import transforms
transform = transforms.Compose([transforms.ToTensor(),  # PIL图像或NumPy数组 -> Tensortransforms.Normalize(mean=[0.5], std=[0.5])  # 归一化
])

DataLoader加载数据

torch.utils.data.DataLoader实现批量加载和数据打乱:

  • batch_size:每批次样本数。
  • shuffle:训练时通常设为True以打乱数据。
  • drop_last:当样本数不能被batch_size整除时,丢弃末尾不完整批次。
from torch.utils.data import DataLoader
dataloader = DataLoader(dataset, batch_size=32, shuffle=True, drop_last=False)

继承与super()

在自定义模型时,super().__init__()确保父类的初始化逻辑优先执行:

class MyModel(nn.Module):def __init__(self):super().__init__()  # 调用父类nn.Module的初始化self.conv = nn.Conv2d(3, 64, kernel_size=3)

卷积操作

  • 卷积核(Kernel):滑动窗口提取特征,生成特征图。
  • Stride:滑动步长,影响输出尺寸。
  • Padding:边缘填充,控制输出尺寸。
  • in_channels/out_channels:输入/输出的通道数。

池化层

减少特征图尺寸,保留重要特征:

  • 最大池化(MaxPooling):取窗口内最大值。
  • 平均池化(AvgPooling):取窗口内平均值。

Sequential构建层级结构

nn.Sequential简化网络层堆叠:

model = nn.Sequential(nn.Conv2d(3, 64, kernel_size=3),nn.ReLU(),nn.MaxPool2d(2)
)

损失函数与反向传播

  • 损失函数:如nn.CrossEntropyLoss衡量预测与目标的差距。
  • 反向传播:调用loss.backward()计算梯度,优化器通过optimizer.step()更新参数。

模型保存与加载

保存模型参数或整个模型:

torch.save(model.state_dict(), "model.pth")  # 仅保存参数
model.load_state_dict(torch.load("model.pth"))  # 加载参数

训练流程模板

  1. 准备数据:定义DatasetDataLoader
  2. 构建模型:继承nn.Module或使用Sequential
  3. 设置损失函数与优化器:如nn.CrossEntropyLosstorch.optim.SGD
  4. 训练循环:前向传播、计算损失、反向传播、参数更新。
  5. 验证与测试:评估模型在验证集/测试集上的表现。
  6. 可视化:使用TensorBoard记录关键指标。
http://www.dtcms.com/a/445976.html

相关文章:

  • 环保网站 中企动力建设专业的网站建设网络
  • 触摸未来2025.10.05:悟神经网络符号之伤,拥抱声音的宇宙
  • 大连鼎信网站建设wordpress简历模板
  • 关于运放的自激振荡和相位裕度
  • Edu164
  • 高端网站建设的网站四川城乡建设网站
  • 滑块(Slider)的原理与应用
  • 网站条形码如何做phpmysql网站开发技术项目式教程
  • 【LeetCode热题100】No.128——最长连续序列
  • 2025-10-04 HETAO CSP-S复赛集训营模拟赛-003 Ⅰ
  • 上海知名的网站建设公司网络优化是做啥的
  • 解码排序算法
  • 站长平台百度百度百科优化
  • 归一化分析3
  • Vue中的data为什么是函数?
  • Odoo 19 Studio 新功能实战培训
  • 手机网站qq代码市场营销的十大理论
  • 能源经济大赛选题推荐:新能源汽车试点城市政策对能源消耗的负面影响——基于技术替代效应的视角
  • 做付费软件网站怎么做广州有什么好玩的地方景点推荐
  • 【数据结构】考研算法精讲:分块查找的深度剖析 | 从“块内无序、块间有序”思想到ASL性能最优解
  • Go语言:用Go操作SQLite详解
  • arp static 概念及题目
  • 十大高端网站定制设计wordpress千万数据优化
  • 【学习笔记】kafka权威指南——第1章 初识kafka
  • 门户网站是指wordpress 特色照片
  • 玩转Pod调度及K8S集群的扩缩容实战案例
  • 数组——双指针:26.删除排序数组中的重复项
  • 【面板数据】上市公司行政处罚数据集(2003-2023年)
  • 低时延低复杂度QC-LDPC 编码技术(二)
  • php 8.3.26 更新日志