企业活动网站创意案例,做网站的业务分析,wordpress管理插件下载,php淘客网站开发目录 数据增强
常用的数据增强方法
调整学习率
学习率
调整学习率
调整学习率的方法
有序调整
等间隔调整 多间隔调整 指数衰减 余弦退火
自适应调整
自定义调整 数据增强
数据增强是通过对训练数据进行各种变换#xff08;如旋转、翻转、裁剪等#xff09;如旋转、翻转、裁剪等生成新的训练样本从而增加数据的多样性。它的主要目的是 提高模型的泛化能力。 防止过拟合。 在数据量不足的情况下有效扩展数据集。 常用的数据增强方法 随机翻转Random Flip 水平翻转RandomHorizontalFlip 垂直翻转RandomVerticalFlip 随机旋转Random Rotation 随机旋转一定角度例如 RandomRotation(30) 表示在 [-30°, 30°] 范围内随机旋转。 随机裁剪Random Crop 随机裁剪图像的一部分例如 RandomResizedCrop(256) 表示随机裁剪并调整大小为 256x256。 颜色变换Color Jitter 随机调整亮度、对比度、饱和度和色调例如 ColorJitter(brightness0.4, contrast0.4, saturation0.4, hue0.1)。 高斯噪声Gaussian Noise 为图像添加随机噪声。 归一化Normalization 将图像像素值归一化到特定范围例如 Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225])。
例如定义训练集和验证集的图像的数据增强模型
data_transforms {train: transforms.Compose([ # transforms.Compose用于将多个图像预处理操作整合在一起transforms.Resize([300,300]), # 使图像变换大小transforms.RandomRotation(45), # 随机旋转-42到45度之间随机选transforms.CenterCrop(256), # 从中心开始裁剪[256.256]transforms.RandomHorizontalFlip(p0.5), # 随机水平旋转随机概率为0.5transforms.RandomVerticalFlip(p0.5), # 随机垂直旋转随机概率0.5transforms.ColorJitter(brightness0.2,contrast0.1,saturation0.1,hue0.1), # 随机改变图像参数参数分别表示 亮度、对比度、饱和度、色温transforms.RandomGrayscale(p0.1), # 概率转换成灰度率3通道就是RGBtransforms.ToTensor(), # 将PIL图像或NumPy ndarray转换为tensor类型并将像素值的范围从[0, 255]缩放到[0.0, 1.0]默认把通道维度放在前面transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225]) # 给定均值和标准差对图像进行标准化前者为均值后者为标准差三个值表示三通道图像]),valid: # 验证集transforms.Compose([ # 整合图像处理的操作transforms.Resize([256,256]), # 缩放图像尺寸transforms.ToTensor(), # 转换为torch类型transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225]) # 标准化])
}
嵌套定义好的数据增强模型
training_datafood_dataset(file_pathr./train.txt,transformdata_transform[train])
test_datafood_dataset(file_pathr./test.txt,transformdata_transform[valid])
调整学习率
学习率 定义 学习率是优化算法如 SGD、Adam中的一个超参数控制模型参数的更新步长。 作用 如果学习率太大可能导致参数更新过快无法收敛甚至发散。 如果学习率太小训练速度会变慢可能陷入局部最优。 重要性合适的学习率是模型训练成功的关键。
调整学习率
学习率调整Learning Rate Scheduling 是优化模型训练的关键技术之一。深度学习中的学习率决定了模型参数在每次更新时的步长大小合适的学习率可以加速收敛并提高模型的性能。常用的学习率有0.1、0.01以及0.001等学习率越大则权重更新越快。一般来说我们希望在训练初期学习率大一些使得网络收敛迅速在训练后期学习率小一些使得网络更好的收敛到最优解。
目的
调整学习率的目的是为了能够更好地优化模型避免训练过程中出现的一些问题如梯度爆炸或梯度消失、训练过程陷入局部极小值等 调整学习率的方法
不同方法调整学习率所对应的横轴epoch值与纵轴学习率的关系如图 PyTorch 提供了多种学习率调度器位于 torch.optim.lr_scheduler 模块中。 有序调整
等间隔调整 多间隔调整 指数衰减 余弦退火 自适应调整 自定义调整