当前位置: 首页 > news >正文

transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)的计算过程

        cifar10数据集的众多demo中,在数据加载环节,transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)这条指令是经常看到的。这是一个 PyTorch 中用于图像数据标准化的函数调用,它将图像的每个通道的值进行标准化处理,使得数据的均值变为 (0.4914, 0.4822, 0.4465),标准差变为 (0.2023, 0.1994, 0.2010)。
        关于均值、均方差以及标准化函数transforms.Normalize()的文章太多了,这里记录一下计算过程。
        对于 CIFAR-10 数据集,均值和标准差的计算方法如下:
        1、收集数据集: 首先,你需要加载整个 CIFAR-10 数据集。CIFAR-10 数据集包含 60,000 张 32x32 的彩色图像,分为 10 个类别。
        2、计算每个通道的均值:
        
对于每个图像,将 RGB 三个通道的值提取出来。然后对所有图像的每个通道的像素值求和,然后除以总像素数(图像数量乘以每个图像的像素数)。
        3、计算每个通道的标准差:
        
对于每个图像,计算每个通道的像素值与该通道均值的差的平方。再对所有图像的每个通道的平方差求和,然后除以总像素数,最后取平方根。

import torch
from torchvision import datasets, transforms# 定义数据预处理
transform = transforms.Compose([transforms.ToTensor()
])# 加载CIFAR-10数据集
train_dataset = datasets.CIFAR10(root='./data', train=True, download=False, transform=transform)# 将数据集转换为Tensor
train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=1, shuffle=False)# 初始化均值和标准差
mean = torch.zeros(3)
std = torch.zeros(3)# 计算均值和标准差
for images, _ in train_loader:for i in range(3):  # 遍历RGB三个通道mean[i] += images[:, i, :, :].mean()   # 计算每个通道的均值std[i] += images[:, i, :, :].std()     # 计算每个通道的标准差# 对三个通道的均值和标准差求平均
mean /= 3
std /= 3# 计算平均值
mean /= len(train_loader)
std /= len(train_loader)print(f'均值: {mean}')   # 均值: tensor([0.4914, 0.4822, 0.4465])
print(f'标准差: {std}')  # 标准差: tensor([0.2023, 0.1994, 0.2010])

上述代码稍加改造,就可用于自定义数据集的计算:

import torch
from torchvision import transforms
from torch.utils.data import Dataset, DataLoader
from PIL import Image
import os# 自定义数据集类
class CustomDataset(Dataset):def __init__(self, img_dir, transform=None):self.img_dir = img_dir   # 图片文件夹的路径self.transform = transform   # 数据预处理self.img_files = os.listdir(img_dir)  # 图片文件列表def __len__(self):   # 获取数据集大小return len(self.img_files)def __getitem__(self, idx):  # 获取图片数据img_path = os.path.join(self.img_dir, self.img_files[idx])image = Image.open(img_path).convert('RGB')if self.transform:image = self.transform(image)return image# 定义数据预处理
transform = transforms.Compose([transforms.ToTensor()
])# 创建自定义数据集实例
custom_dataset = CustomDataset(img_dir='自定义数据集的文件夹路径', transform=transform)# 创建数据加载器
custom_loader = DataLoader(custom_dataset, batch_size=1, shuffle=False)# 初始化均值和标准差
mean = torch.zeros(3)
std = torch.zeros(3)# 计算均值和标准差
for images in custom_loader:for i in range(3):  # 遍历RGB三个通道mean[i] += images[:, i, :, :].mean()  # 计算每个通道的均值std[i] += images[:, i, :, :].std()  # 计算每个填充的标准差# 计算平均值
mean /= len(custom_loader)
std /= len(custom_loader)print(f'均值: {mean}')
print(f'标准差: {std}')

相关文章:

transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)的计算过程

cifar10数据集的众多demo中,在数据加载环节,transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)这条指令是经常看到的。这是一个 PyTorch 中用于图像数据标准化的函数调用,它将图像的每个通道的值进行标准化处理&…...

Excel表格如何修改“打开密码”,简单几步,轻松搞定

在保护Excel文件的安全性时,设置打开密码是常见且有效的方式。然而,有时我们需要修改已经设置的打开密码,以确保文件安全性或更新密码信息。今天小编来分享一下修改Excel文件打开密码的方法,操作简单,一起来看看吧&…...

pandas 数据分析实战

一、pandas常用数据类型 series,带标签的一维数组。类似于字典,但是键作为索引。 datatimeindex,时间序列。 dataframe,带标签且大小可变的二维表格结构。 panel,带标签且大小可变的三维数组。 1.一维数组与操…...

antd vue 输入框高亮设置关键字

<highlight-textareaplaceholder"请输入主诉"type"textarea"v-model"formModel.mainSuit":highlightKey"schema.componentProps.highlightKey"></highlight-textarea> 参考链接原生input&#xff0c;textarea demo地址 …...

python——扑克牌案列

斗地主发牌程序&#xff1a; 模拟一个斗地主发牌程序&#xff0c;实现对三个玩家进行手牌的派发&#xff0c;实现功能&#xff1a; ********** 欢迎进入 XX 斗地主 ********** 请输入玩家姓名&#xff1a;<用户控制台输入 A> 请输入玩家姓名&#xff1a;<用户控制台输…...

Java最全面试题->Java基础面试题->JavaWeb面试题->Git/SVN面试题

文章目录 Git/SVN面试题Git和SVN有什么区别&#xff1f;SVN优缺点&#xff1f;Git优缺点&#xff1f;说一下Git创建分支的步骤&#xff1f;说一下Git合并的两种方法以及区别&#xff1f;Git如何查看文件的提交历史和分支的提交历史?什么是 git stash&#xff1f;什么是git sta…...

引进Menu菜单与新增验证上传图片功能--系统篇

我的迭代小系统要更新2点。一是后台需要引进一种导航&#xff0c;众多导航之中我选择了Menu菜单。二是上传图片接口需要新增验证上传图片环节。先看看更新2点后的效果 引进Menu菜单效果如下&#xff0c;这部分修改后台前端代码 引进Menu菜单后&#xff0c;Menu菜单的默认数据我…...

安装Python及pip使用方法详解

一、安装Python Python是一种广泛使用的高级编程语言&#xff0c;其安装过程相对简单。以下是具体步骤&#xff1a; 访问Python官网&#xff1a; 打开浏览器&#xff0c;访问Python的官方网站[python.org](https://www.python.org/)&#xff0c;确保下载的是最新版本的Python安…...

利用Arcgis进行沟道形态分析

在做项目的时候需要学习到水文分析和沟道形态分析的学习&#xff0c;所以自己摸索着做了下面的工作和内容。如有不对请多指正&#xff01;&#xff01; 一、沟道形态分析概述 沟道形态分析是水文分析的一个重要方面&#xff0c;用于研究河流的形态和特征。沟道形态分析可以帮助…...

Excel:vba实现筛选出有批注的单元格

实现的效果&#xff1a;代码&#xff1a; Sub test() Dim cell As RangeRange("F3:I10000").ClearlastRow Cells(Rows.Count, "f").End(xlUp).Row MsgBox lastrow For Each cell In Range("a1:a21")If Not cell.Comment Is Nothing ThenMsgBox…...

RabbitMQ 发布确认模式

RabbitMQ 发布确认模式 一、原理 RabbitMQ 的发布确认模式&#xff08;Publisher Confirms&#xff09;是一种机制&#xff0c;用于确保消息在被 RabbitMQ 服务器成功接收后&#xff0c;发布者能够获得确认。这一机制在高可用性和可靠性场景下尤为重要&#xff0c;能够有效防止…...

【面试题】什么是SpringBoot以及SpringBoot的优缺点

什么是SpringBoot以及SpringBoot的优缺点 什么是SpringBoot SpringBoot是基于Spring的一个微框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。 SpringBoot的优点 可以创建独立的Spring应用程序&#xff0c;并且基于其Maven或Gradle插件&#xff0c;可以创建可执…...

git区分大小写吗?如果不区分,那要如何设置?

git区分大小写吗&#xff1f;如果不区分&#xff0c;那要如何设置&#xff1f; "Git在文件名的大小写方面是区分大小写的&#xff0c;但在某些操作系统&#xff08;如Windows和macOS&#xff09;上&#xff0c;文件系统默认是不区分大小写的。这可能导致一些问题&#xf…...

Docker 安装使用

1. 下载 下载地址&#xff1a;Index of linux/static/stable/x86_64/ 下载好后&#xff0c;将文件docker-18.06.3-ce.tgz用WinSCP等工具&#xff0c;上传到不能外网的linux系统服务器 2. 安装 解压后的文件夹docker中文件如下所示&#xff1a; 将docker中的全部文件&#xff…...

Linux Docker配置镜像加速

Docker配置常用镜像加速地址包含阿里、腾讯、百度、网易 1. 编辑docke配置文件 vim /etc/docker/daemon.json写入以下内容 {"registry-mirrors": ["https://docker.mirrors.aliyuncs.com","https://registry.docker-cn.com","https://mi…...

了解CSS Typed OM

CSS Typed OM&#xff08;CSS Typed Object Model&#xff09;是一项前沿的技术&#xff0c;旨在改变我们编写和操作CSS的方式。以下是对CSS Typed OM的详细解析&#xff1a; 一、CSS Typed OM概述 CSS Typed OM是一个包含类型和方法的CSS对象模型&#xff0c;它暴露了作为Ja…...

[ 钓鱼实战系列-基础篇-6 ] 一篇文章让你了解邮件服务器机制(SMTP/POP/IMAP)-2

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…...

在 Docker 中搭建 PostgreSQL16 主从同步环境

1. 环境搭建 本文介绍了如何在同一台机器上使用 Docker 容器搭建 PostgreSQL 的主从同步环境。通过创建互联网络和配置主库及从库&#xff0c;详细讲解了数据库初始化、角色创建、数据同步和验证步骤。主要步骤包括设置主库的连接信息、创建用于复制的角色、使用 pg_basebacku…...

SpringCloud无介绍快使用,sentinel服务熔断功能与持久化(二十四)

TOC 问题背景 从零开始学springcloud微服务项目 注意事项&#xff1a; 约定 > 配置 > 编码IDEA版本2021.1这个项目&#xff0c;我分了很多篇章&#xff0c;每篇文章一个操作步骤&#xff0c;目的是显得更简单明了controller调service&#xff0c;service调dao默认安装ngi…...

判断浏览器环境,前端打开微信浏览器

我们知道微信浏览器有自带针对微信的组件(比如&#xff1a;微信JSAPI支付使用的WeixinJSBridge)&#xff0c;那么&#xff0c;有办法在普通浏览器中打开微信浏览器并跳转页面吗&#xff1f;(似乎微信已禁用外部浏览器调用的普通页面直接跳转&#xff0c;只能通过“weixin://前缀…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...

6.计算机网络核心知识点精要手册

计算机网络核心知识点精要手册 1.协议基础篇 网络协议三要素 语法&#xff1a;数据与控制信息的结构或格式&#xff0c;如同语言中的语法规则语义&#xff1a;控制信息的具体含义和响应方式&#xff0c;规定通信双方"说什么"同步&#xff1a;事件执行的顺序与时序…...