深度学习框架之《数据增强》

pytorch篇数据增强

torchvision.transforms,举例如下:

import torchvision.transforms as transforms

data_transforms = transforms.Compose([
        transforms.RandomResizedCrop(224),
        transforms.RandomHorizontalFlip(),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ])

transforms.Compose(transforms) 方法是将多种变换组合在一起。

函数

  1. torchvision.transforms.Normalize(mean, std):用给定的均值和标准差分别对每个通道的数据进行正则化
  2. torchvision.transforms.ToTensor :把一个取值范围是[0,255]的PIL.Image或者shape为(H,W,C)的numpy.ndarray,转换成形状为[C,H,W],取值范围是[0,1.0]的torch.FloadTensor
  3. torchvision.transforms.ToPILImage:将shape为(C,H,W)的Tensor或shape为(H,W,C)的numpy.ndarray转换成PIL.Image,值不变。
  4. torchvision.transforms.CenterCrop(size):将给定的PIL.Image进行中心切割,得到给定的size,size可以是tuple,(target_height, target_width)。size也可以是一个Integer,在这种情况下,切出来的图片的形状是正方形。
  5. torchvision.transforms.RandomCrop(size, padding=0):切割中心点的位置随机选取。size可以是tuple也可以是Integer。
  6. torchvision.transforms.RandomHorizontalFlip:随机水平翻转给定的PIL.Image,概率为0.5。即:一半的概率翻转,一半的概率不翻转。
  7. torchvision.transforms.RandomVerticalFlip(p=0.5):按照概率p对PIL图片进行垂直翻转
  8. torchvision.transforms.RandomRotation(degrees, resample=False, expand=False, center=None, fill=None):按照degree随机旋转一定角度,加入degree是10,就是表示在(-10,10)之间随机旋转,如果是(30,60),就是30度到60度随机旋转;
  9. torchvision.transforms.RandomSizedCrop(size, interpolation=2):先将给定的PIL.Image随机切,然后再resize成给定的size大小。
  10. torchvision.transforms.Pad(padding, fill=0):将给定的PIL.Image的所有边用给定的pad value填充。 padding:要填充多少像素 fill:用什么值填充
  11. torchvision.transforms.Pad(brightness=0, contrast=0, saturation=0, hue=0):改变图片的属性,brightness亮度、contrast对比度、saturation饱和度、hue色调
    其他参考
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
现代深度学习框架是构建复杂神经网络模型的关键工具,它们提供了一整套库和API,使得开发者能够方便地定义、训练和部署深度学习模型。以下是深度学习框架建立模型的一些关键步骤: 1. **选择框架**:常见的深度学习框架有TensorFlow、PyTorch、Keras(现在是TensorFlow的一个高级API)、Microsoft's ML.NET、Apache MXNet等。每种框架都有其优点和适用场景,选择取决于项目需求、社区支持和开发者的熟悉程度。 2. **模型架构设计**:使用框架提供的API,如PyTorch的nn.Module或TensorFlow的tf.keras.Model,设计神经网络的层次结构,包括输入层、隐藏层和输出层,可能还会包含卷积层、循环层(如LSTM或GRU)等。 3. **定义模型**:配置模型的参数,如层数、节点数、激活函数等,并可能使用预训练的权重进行迁移学习。 4. **数据准备**:整理和加载训练数据集,通常需要进行数据预处理,如标准化、归一化、数据增强等,以提高模型性能。 5. **编译模型**:为模型指定损失函数、优化器和评估指标,如交叉熵损失、Adam优化器、准确率等。 6. **训练模型**:通过训练数据对模型进行迭代训练,通常会设置验证集来监控模型在未见过的数据上的表现并防止过拟合。 7. **模型评估和调整**:在测试集上评估模型性能,根据结果调整模型参数或修改架构。 8. **模型保存与部署**:将训练好的模型保存到文件中,以便在其他环境或应用中使用,也可以通过封装为API或服务进行部署。 相关问题: 1. 深度学习框架有哪些常见的优点? 2. 如何在深度学习模型中实现自定义的层或模块? 3. 在训练过程中如何有效地防止过拟合?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值