首页 > 其他分享 >数据集相关类代码回顾理解 | np.mean\transforms.Normalize\transforms.Compose\xxx.transform

数据集相关类代码回顾理解 | np.mean\transforms.Normalize\transforms.Compose\xxx.transform

时间:2024-07-30 19:53:18浏览次数:14  
标签:Normalize test0 Compose 均值 transform transforms mean

数据集相关类代码回顾理解 | StratifiedShuffleSplit\transforms.ToTensor\Counter

目录

np.mean

transforms.Normalize

transforms.Compose

xxx.transform


np.mean

meanRGB=[np.mean(x.numpy(),axis=(1,2)) for x,_ in train_ds]

计算每个样本的(RGB)均值  。NumPy 库np.mean 函数,用于计算数组元素的平均值。接受一个数组作为输入,返回一个标量值,表示数组中所有元素的平均值。axis 参数用于指定在计算平均值时沿哪个轴进行操作,axis 参数可以是一个整数或一个整数元组。axis=(1,2) 是一个元组,表示在高度和宽度维度上计算平均值,即对每个通道(如RGB)的值进行平均。辨析来看下一步:

meanR=np.mean([m[0] for m in meanRGB])  

计算所有样本的R通道均值的均值。同理m[1]、m[2]分别可以计算所有样本G、B通道均值的均值,这样得到的实际上是一个最终均值,同理可以得到最终标准差,为标准化做准备。

transforms.Normalize

transforms.Normalize([meanR, meanG, meanB], [stdR, stdG, stdB])])

对图像进行标准化,将像素值缩放到均值为0标准差为1的范围,均值和标准差分别为meanR, meanG, meanB和stdR, stdG, stdB。transforms.Normalize是PyTorch中的图像预处理函数,作用是将图像的每个像素值减去均值,然后再除以标准差,从而将像素值缩放到均值为0,标准差为1的范围。需要注意的是,这个过程实际对应的是标准化Standardization\mathrm{X_{j}~=~\frac{X_i~-\mu}\sigma},而非常规的线性归一化,归一化通常在标准化之前组合使用。例如线性归一到[0,1]范围\mathrm{X_{j}~=~\frac{X_i~-X_{min}}{X_{max}~-X_{min}}},通常通过transforms.ToTensor实现,参照http://t.csdnimg.cn/5FSvB

有资料将Standardization标准化称为zero-mean unit-variance normalization零均值单位方差归一化,本质相同\mathrm{X_{j}~=~\frac{X_i~-\mu}\sigma}

transforms.Compose

test0_transformer = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize([meanR, meanG, meanB], [stdR, stdG, stdB]),
    ])   

transforms.Compose 是 torchvision.transforms 模块中的一个类,用于将多个图像变换操作组合成一个整体。以一个包含多个变换操作的列表作为输入,并按照列表中的顺序依次对图像进行变换。上述代码就将以下操作组合成了一个整体:图像转化为张量,像素值从 [0, 255] 范围归一缩放到 [0, 1] 范围,通道顺序从 HWC(高度、宽度、通道)转换为 CHW(通道、高度、宽度),并对图像进行标准化,将像素值缩放到均值为0标准差为1的范围,均值和标准差分别为meanR, meanG, meanB和stdR, stdG, stdB。例如前面transforms.Normalize提到的,这里就包括了归一化和标准化的组合使用。

transforms.ToTensor()的作用是将PIL图像或NumPy数组转换为PyTorch张量,并且将图像的像素值从[0, 255]范围缩放到[0.0, 1.0]范围,即在[0.0, 1.0]范围内对像素值进行归一化。转换后的张量形状为(C, H, W)。

xxx.transform

test0_ds.transform=test0_transformer

test0_ds.transform 是一个属性,test0_ds.transform=test0_transformer将测试数据集的转换器赋给测试数据集的transform属性,意味着在从 test0_ds 中获取样本时,每个样本都会先经过test0_transformer进行预处理。

标签:Normalize,test0,Compose,均值,transform,transforms,mean
From: https://blog.csdn.net/weixin_73404807/article/details/140791993

相关文章

  • 如何在包含嵌套列表列表的 json 上使用 json_normalize
    我正在用Python处理一个复杂的JSON字符串,并且在将数据放入Pandas数据帧时遇到问题。示例数据、当前输出和预期输出全部如下。我正在尝试使用json_normalize,但它没有完全标准化,留下了几列包含JSON列表。我的最终目标是将其插入到SQLDB中,但是json字符串由于其长度而......
  • 使用 Docker Compose 部署 RabbitMQ 的一些经验与踩坑记录
    前言RabbitMQ是一个功能强大的开源消息队列系统,它实现了高效的消息通信和异步处理。本文主要介绍其基于Docker-Compose的部署安装和一些使用的经验。特点成熟,稳定消息持久化灵活的消息路由高性能,高可用性,可扩展性高支持插件系统:RabbitMQ具有丰富的插件系统,可以通......
  • 《昇思25天学习打卡营第5天|数据变换 Transforms》
    数据变换Transforms通常情况下,直接加载的原始数据并不能直接送入神经网络进行训练,此时我们需要对其进行数据预处理。MindSpore提供不同种类的数据变换(Transforms),配合数据处理Pipeline来实现数据预处理。所有的Transforms均可通过map方法传入,实现对指定数据列的处理......
  • Postgresql & PgAdmin powered by compose
    Postgresql&PgAdminpoweredbycomposehttps://github.com/fanqingsong/compose-postgres/blob/master/docker-compose.ymlQuickStartCloneordownloadthisrepositoryGoinsideofdirectory,cdcompose-postgresRunthiscommanddocker-composeup-d......
  • Android Compose 使用 照片选择器 Photo Picker
    从Android13(Tiramisu,API33)开始,官方提供了系统级图片选择器PhotoPicker。而且无需申请权限,只需几行代码即可轻松接入。效果如下图:在不支持PhotoPicker的低版本机型中,该库会自动调用ACTION_OPEN_DOCUMENT打开系统资源管理器进行选择,问题也不大。官方介绍and教程:Ph......
  • Android 将 ViewModel 和 Compose界面的数据 双向绑定
    简介双向绑定说白了就是达到下面的效果:ViewModel能够实时传输从Room数据库查询到的数据到Compose页面。Compose页面能实时传输用户输入的数据到ViewModel类。需要分别在ViewModel和Compose中操作。一、在ViewModel中:1、使用mutableStateOf家族定义一个可变的值(......
  • Jetpack Compose学习(12)——Material Theme的主题色切换
    原文:JetpackCompose学习(12)——MaterialTheme的主题色切换-Stars-One的杂货小窝闲着无事研究了下JetpackComposeM3主题切换效果本系列以往文章请查看此分类链接Jetpackcompose学习如何生成主题首先,我们需要知道的是,M3有提供个在线网站供开发者进行快速生成主题,......
  • Docker-compose
    介绍Compose是Docker公司推出的一个工具软件,可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动、关闭这些容器。核心组成1、一文件docker-compose.yml2、两要素服......
  • 探索Docker Compose:轻松管理多容器应用的最佳实践 转载
    目录1docker-compose1.6.1简单命令1.6.2build1.6.3depends_on1.6.4deploy1.6.5logging1.6.6network_mode1.6.7secrets1.1compose编排工具简介1.2安装docker-compose1.3编排启动镜像1.4haproxy代理后端docker容器1.5安装soca......
  • docker-compose安装loki
    在Linux上使用Docker安装Loki和Grafana,完成日志采集和分析的步骤如下:步骤1:安装Docker确保你已经安装并配置好Docker。如果还没有,请参考前面的安装步骤。步骤2:安装DockerCompose为了简化Loki和Grafana的安装和配置,建议使用DockerCompose。以下是在Ubuntu......