当前位置: 首页> 健康> 养生 > 丹东网站建设平台_小程序制作那个好_搜索引擎优化排名工具_如何利用网络广告进行推广

丹东网站建设平台_小程序制作那个好_搜索引擎优化排名工具_如何利用网络广告进行推广

时间:2025/7/10 17:39:58来源:https://blog.csdn.net/Glass_Gun/article/details/142459807 浏览次数:0次
丹东网站建设平台_小程序制作那个好_搜索引擎优化排名工具_如何利用网络广告进行推广

数据读取机制DataLoader与Dataset

数据处理过程

在这里插入图片描述

DataLoader

torch.utils.data.DataLoader

功能:构建可迭代的数据装载器

  • dataset:Dataset类,决定数据从哪里读取及如何读取
  • batchsize:批大小
  • num_works:是否多进程读取数据
  • shuffle:每个epoch是否乱序
  • drop_last:当样本数不能被batchsize整除时,是否舍弃最后一批数据

在这里插入图片描述

概念区分

Epoch:所有训练样本都已输入到模型中,称为一个Epoch
Iteration:一批样本输入到模型中,称之为一个Iteration
Batchsize:批大小,决定一个Epoch有多少个Iteration

样本总数:80, Batchsize:8
1 Epoch = 10 Iteration

样本总数:87, Batchsize:8
1 Epoch = 10 Iteration ? drop_last = True
1 Epoch = 11 Iteration ? drop_last = False

Dataset

torch.utils.data.Dataset

功能:Dataset抽象类,所有自定义的Dataset需要继承它,并且复写_getitem_()
getitem:接受一个索引,返回一个样本

数据读取的流程

在这里插入图片描述

数据预处理transforms模块机制

transforms运行机制

torchvision:计算机视觉工具包

torchvision.transforms:常用的图像预处理方法

torchvision.datasets:常用数据集的dataset实现,MNIST,CIFAR-10,ImageNet等

torchvision.model:常用的模型预训练,AlexNet,VGG, ResNet,GoogLeNet等

torchvision.transforms : 常用的图像预处理方法

• 数据中心化
• 数据标准化
• 缩放
• 裁剪
• 旋转
• 翻转
• 填充
• 噪声添加
• 灰度变换
• 线性变换
• 仿射变换
• 亮度、饱和度及对比度变换

数据标准化

transforms.normalize

功能:逐channel的对图像进行标准化
output = (input - mean ) / std

  • mean:各通道的均值
  • std:各通道的标准差
  • inplace:是否原地操作

transforms图像增强

数据增强

Data Augmentaion
数据增强又称为数据增广,数据扩增,它是对训练集进行变换,使得训练集更加丰富,从而让模型更具有泛化能力

transforms —— 裁剪(Crop)

1. transforms.CenterCrop

功能:从图像中心裁剪图片

  • size:所需裁剪图片尺寸

2. transforms.RandomCrop

功能:从图片中随机裁剪出尺寸为size的图片

  • size:所需裁剪图片尺寸
  • padding:设置填充大小
    当为a时,上下左右均填充a个像素
    当为(a, b)时,上下填充b个像素,左右填充a个像素
    当为(a, b, c, d)时,左、上、右、下分别填充a、b、c、d
  • pad_if_need:若图像小于设定size,则填充
  • padding_mode:填充模式,有4种模式:
    1. constant:像素值由fill决定
    2. edge:像素值由图像边缘像素决定
    3. reflect:镜像填充,最后一个像素不镜像
      eg:[1,2,3,4] --> [3,2,1,2,3,4,3,2]
    4. symmetric:镜像填充,最后一个像素镜像
      eg:[1,2,3,4] --> [2,1,1,2,3,4,4,3]
  • fill:constant时,设置填充的像素值

3. RandomResizedCrop

功能:随机大小、长宽比剪裁图片

  • size:所需要裁剪图片尺寸
  • scale:随机裁剪面积比例,默认(0.08, 1)
  • ratio:随机长宽比,默认(3/4, 4/3)
  • interpolation:插值方法
    PIL.Image.NEAREST
    PIL.Image.BILINEAR
    PIL.Image.BICUBIC

4. FiveCrop

5.TenCrop

功能:在图像的上下左右以及中心裁剪出尺寸为size的5张图片,TenCrop对这5张图片进行水平或者垂直镜像获得10张图片

  • size:所需裁剪图片尺寸
  • vertical_flip:是否垂直翻转

transforms——翻转、旋转(Flip and Rotation)

1. RandomHorizontalFlip

2. RandomVertiocalFlip

功能:依概率水平(左右)或垂直(上下)翻转图片

  • p:翻转概率

3. RandomRotation

功能:随机旋转图片

  • degress:旋转角度
    当为a时,在(-a, a)之间选择旋转角度
    当为(a, b)时,在(a, b)之间选择旋转角度
  • resample:重采样方法
  • expand:是否扩大图片,以保持原图信息
  • center:旋转点设置,默认中心旋转

transforms——图像变换

1. Pad

功能:对图片边缘进行填充

  • padding:设置填充大小
    当为a时,上下左右均填充a个像素
    当为(a, b)时,上下填充b个像素,左右填充a个像素
    当为(a, b, c, d)时,左,上,右,下分别填充a, b, c, d
  • padding_mode:填充模式,有4种模式,constant、edge、reflec t和symmetric
  • fill:constant时,设置填充的像素值,(R, G, B) o r (Gray)

2. ColorJitter

功能:调整亮度、对比度、饱和度和色相

  • brightness:亮度调整因子
    当为a时,从[max (0, 1-a), 1+a]中随机选择
    当为(a, b)时,从[a, b]中
  • contrast:对比度参数,同brightness
  • saturation:饱和度参数,同brightness
  • hue:色相参数
    当为a时,从[-a, a]中选择参数,注: 0<= a <= 0.5
    当为(a, b)时,从[a, b]中选择参数,注:-0.5 <= a <= b <= 0.5

3. Grayscale

4. RandomGrayscale

功能:依概率将图片转换为灰度图

  • num_ouput_channels:输出通道数,只能设1或3
  • p:概率值,图像被转换为灰度图的概率

5. RandomAffine

功能:对图像进行仿射变换,仿射变换是二维的线性变换,由五种基本原子变换构成,分别是旋转平移缩放错切翻转

  • degrees:旋转角度设置
  • translate:平移区间设置,如(a, b), a设置宽(width),b设置高(height)
    图像在宽维度平移的区间为 -img_width * a < dx < img_width * a
  • scale:缩放比例(以面积为单位)
  • fill_color:填充颜色设置
  • shear:错切角度设置,有水平错切和垂直错切
    若为a,则仅在x轴错切,错切角度在(-a, a)之间
    若为(a,b),则a设置x轴角度,b设置y的角度
    若为(a, b, c, d),则a, b设置x轴角度,c, d设置y轴角度
  • resample:重采样方式,有NEAREST 、BILINEAR、BICUBIC

6. RandomErasing

功能:对图像进行随机遮挡

  • p:概率值,执行该操作的概率
  • scale:遮挡区域的面积
  • ratio:遮挡区域长宽比
  • value:设置遮挡区域的像素值,(R, G, B) or (Gray)

参考文献:《Random Erasing Data Augmentation》

7. transforms.Lambda

功能:用户自定义lambda方法

  • lambd:lambda匿名函数

lambda [arg1 [,arg2,…, argn]] : expression

transforms——方法操作

1. transforms.RandomChoice

功能:从一系列transforms方法中随机挑选一个

transforms.RandomChoice([transforms1, transforms2, transforms3])

2. transforms.RandomApply

功能:依据概率执行一组transforms操作

transforms.RandomApply([transforms1, transforms2, transforms3], p=0.5)

3. transforms.RandomOrder

功能:对一组transforms操作打乱顺序

transforms.RandomOrder([transforms1, transforms2, transforms3])

自定义transforms方法

自定义transforms要素

class Compose(object):def __call__(self, img):for t in self.transforms:img = t(img)return umg
  1. 仅接收一个参数,返回一个参数
  2. 注意上下游的输出与输入

通过类实现多参数传入:

class YourTransforms(object):def __init__(self, ...):...def __call__(self, img):...return img

总结——transforms方法

一、裁剪

  1. transforms.CenterCrop
  2. transforms.RandomCrop
  3. transforms.RandomResizedCrop 4. transforms.FiveCrop
  4. transforms.TenCrop

二、翻转和旋转

  1. transforms.RandomHorizontalFlip
  2. transforms.RandomVerticalFlip
  3. transforms.RandomRotation

三、图像变换

  1. transforms.Pad
  2. transforms.ColorJitter
  3. transforms.Grayscale
  4. transforms.RandomGrayscale
  5. transforms.RandomAffine
  6. transforms.LinearTransformation
  7. transforms.RandomErasing
  8. transforms.Lambda
  9. transforms.Resize
  10. transforms.Totensor
  11. transforms.Normalize

transforms的操作

  1. transforms.RandomChoice
  2. transforms.RandomApply
  3. transforms.RandomOrder

数据增强实战

原则:让训练集与测试集更接近

  • 空间位置:平移
  • 色彩:灰度图,色彩抖动
  • 形状:仿射变换
  • 上下文场景:遮挡,填充
  • ……
关键字:丹东网站建设平台_小程序制作那个好_搜索引擎优化排名工具_如何利用网络广告进行推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: