深度学习04数据增强、调整学习率
- 软件开发
 - 2025-09-07 20:00:01
 

目录
数据增强
常用的数据增强方法
调整学习率
学习率
调整学习率
调整学习率的方法
有序调整
等间隔调整
多间隔调整
指数衰减
余弦退火
自适应调整
自定义调整
数据增强数据增强是通过对训练数据进行各种变换(如旋转、翻转、裁剪等),生成新的训练样本,从而增加数据的多样性。它的主要目的是:
提高模型的泛化能力。
防止过拟合。
在数据量不足的情况下,有效扩展数据集。
常用的数据增强方法随机翻转(Random Flip)
水平翻转:RandomHorizontalFlip 垂直翻转:RandomVerticalFlip随机旋转(Random Rotation):
随机旋转一定角度,例如 RandomRotation(30) 表示在 [-30°, 30°] 范围内随机旋转。随机裁剪(Random Crop):
随机裁剪图像的一部分,例如 RandomResizedCrop(256) 表示随机裁剪并调整大小为 256x256。颜色变换(Color Jitter):
随机调整亮度、对比度、饱和度和色调,例如 ColorJitter(brightness=0.4, contrast=0.4, saturation=0.4, hue=0.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(p=0.5), # 随机水平旋转,随机概率为0.5 transforms.RandomVerticalFlip(p=0.5), # 随机垂直旋转,随机概率0.5 transforms.ColorJitter(brightness=0.2,contrast=0.1,saturation=0.1,hue=0.1), # 随机改变图像参数,参数分别表示 亮度、对比度、饱和度、色温 transforms.RandomGrayscale(p=0.1), # 概率转换成灰度率,3通道就是R=G=B transforms.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_data=food_dataset(file_path=r'./train.txt',transform=data_transform['train']) test_data=food_dataset(file_path=r'./test.txt',transform=data_transform['valid']) 调整学习率 学习率定义
学习率是优化算法(如 SGD、Adam)中的一个超参数,控制模型参数的更新步长。
作用
如果学习率太大,可能导致参数更新过快,无法收敛甚至发散。
如果学习率太小,训练速度会变慢,可能陷入局部最优。
重要性:合适的学习率是模型训练成功的关键。
调整学习率学习率调整(Learning Rate Scheduling) 是优化模型训练的关键技术之一。深度学习中的学习率决定了模型参数在每次更新时的步长大小,合适的学习率可以加速收敛并提高模型的性能。常用的学习率有0.1、0.01以及0.001等,学习率越大则权重更新越快。一般来说,我们希望在训练初期学习率大一些,使得网络收敛迅速,在训练后期学习率小一些,使得网络更好的收敛到最优解。
目的
调整学习率的目的是为了能够更好地优化模型,避免训练过程中出现的一些问题,如梯度爆炸或梯度消失、训练过程陷入局部极小值等
调整学习率的方法不同方法调整学习率所对应的横轴epoch值与纵轴学习率的关系如图
PyTorch 提供了多种学习率调度器,位于 torch.optim.lr_scheduler 模块中。
有序调整 等间隔调整 多间隔调整 指数衰减 余弦退火 自适应调整 自定义调整深度学习04数据增强、调整学习率由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“深度学习04数据增强、调整学习率”
上一篇
              mount出现2038问题
下一篇
              Windows环境搭建ES集群