type
status
date
slug
summary
tags
category
icon
password
从PyTorch中加载数据
Data set
用于获取数据以及lable
内容
- 如何获取数据以及lable
- 总共的数据数量
Data loader
为网络提供不同的数据形式
常见的文件组织形式
用 Lable 命名
一组文件
Lable与文件对应
一组文件,一组对应的记录lable的文件
Dataset代码实战
- 导入各种包
- 传入根路径和相对路径
- 合并路径,找到对应文件
- 将文件与lable对应
Tensorborad使用
绘制函数图像
在命令行启动
展示图像
Torchvision中的transforms
这里转化成 tensor 后,像素值会被归一化到 0-1 之间
writer中默认格式和 tensor的格式相符
常见的 transforms 的使用
Normalize
功能:对 Tensor 数据按通道归一化到标准分布
公式:
关键参数:
mean:通道均值(如 [0.5, 0.5, 0.5])
std:通道标准差(如 [0.5, 0.5, 0.5])
注意:输入需为 Tensor,值范围为 [0.0, 1.0]
Compose
功能:将多个变换按顺序组合为一个流水线
关键参数:变换列表 [transform1, transform2, ...]
作用:简化数据预处理流程。
Resize
功能:调整图片大小(强制或等比例缩放)
关键参数:
size:目标大小(如 256 或 (224, 224))
interpolation:插值方式,默认 BILINEAR
作用:调整图像尺寸以符合模型输入要求。
RandomCrop
功能:随机裁剪图片到指定大小,用于数据增强
关键参数:
1. size:裁剪的目标大小(int 或 (height, width))
2. padding:可选,对图像边界进行填充,默认为 0(无填充)
可以是单个值(所有边相同)或 4 个值(分别为左、上、右、下的填充)
3. pad_if_needed:如果图像尺寸小于目标裁剪大小,是否自动填充,默认为 False
Torchvision 中的数据集使用
DataLoader
DataLoader中的各个参数
dataset
数据来源,某个地址
batch_size
每次加载的数据样本数量
shuffle
是否打乱顺序
- 训练阶段:一般为True——提高模型泛化能力
- 测试阶段:一般为False,无需打乱
num_workers
用于加载的子进程数
drop_last
是否丢弃最后一个不完成批次
- 训练:可以丢弃——防止不平衡
- 测试:一般保留所有数据
nn.Module——神经网络的基本骨架
model类:必须从nn.module继承
卷积层
- in_channels (int) – Number of channels in the input image
- out_channels (int) – Number of channels produced by the convolution
基本就是用 kernel 套在输入的矩阵上一次次移动,每次计算对应位置相乘的值,放在输出的对应位置
池化层
最大池化
- kernel_size:池化窗口的大小(例如,2x2)
- stride:窗口滑动的步长(默认为与 kernel_size 相同)——也就是说默认不重叠
- padding:在输入边界添加的像素数量(默认为 0)
- dilation:池化窗口中元素间的间距(默认为 1)
非线性激活
ReLu
Sigmoid
线性层和其他层
线性层
Sequential
用于按顺序执行运算
实战:CRFAR10
CRFAR-10损失函数
- 计算预测和真实之间的差距
- 为更新参数提供依据(反向传播)
- 作者:昊卿
- 链接:hqhq1025.tech/article/tudui
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。