话不多说,直接干货,计算一个自定义数据集的三个通道的标准差和方差,这里使用了两个文件,getStat.py和ImageDataset.py,还有两个数据集的文件(夹),一个文件夹下面放所有的数据(图片),另一个记录图片和类train.csv,这里放了整个数据集的标签信息,并不仅仅是训练集的(其实这个我直接拿我的来用的–把所有数据的名称标签都放进去了,然后通过ImageDataset.py取出,感兴趣的小伙伴可以自己再研究,其实可以不用标签)
下面是目录结构:

下面是.csv文件数据 前面是文件名后面是标签(可以是任意的标签形式,不必要是数字)

getStat.py代码如下:

# -*- coding: utf-8 -*-
# @Time : 2020/11/8 7:40 下午
# @Author : ligang
# @FileName: getStat.py
# @Email   : ucasligang@163.com
# @Software: PyCharm
import torchfrom ImageDataset import ImageDatasetdef getStat(train_data):'''Compute mean and variance for training data:param train_data: 自定义类Dataset(或ImageFolder即可):return: (mean, std)'''print('Compute mean and variance for training data.')print(len(train_data))train_loader = torch.utils.data.DataLoader(train_data, batch_size=1, shuffle=False, num_workers=0,pin_memory=True)mean = torch.zeros(3)std = torch.zeros(3)for X, _ in train_loader:for d in range(3):mean[d] += X[:, d, :, :].mean()std[d] += X[:, d, :, :].std()mean.div_(len(train_data))std.div_(len(train_data))return list(mean.numpy()), list(std.numpy())if __name__ == '__main__':train_dataset = ImageDataset('', 'data')print(getStat(train_dataset))

ImageDataSet.py文件如下:

import os.path as osp
from PIL import Imagefrom torch.utils.data import Dataset
from torchvision import transformsclass ImageDataset(Dataset):def __init__(self, ROOT_PATH, setname):csv_path = osp.join(ROOT_PATH, setname + '.csv')lines = [x.strip() for x in open(csv_path, 'r').readlines()][1:]data = []label = []lb = -1self.wnids = []for l in lines:name, wnid = l.split(',')path = osp.join(ROOT_PATH, 'images', name)if wnid not in self.wnids:self.wnids.append(wnid)lb += 1data.append(path)label.append(lb)self.data = dataself.label = labelself.transform = transforms.Compose([transforms.ToTensor(),])def __len__(self):return len(self.data)def __getitem__(self, i):path, label = self.data[i], self.label[i]image = self.transform(Image.open(path).convert('RGB'))return image, label

统计数据集的标准差和方差相关推荐

  1. 数学统计:均值、标准差、方差、协方差

    均值:均值描述的是样本集合的中间点,它告诉我们的信息是很有限的. 标准差:标准差给我们描述的则是样本集合的各个样本点到均值的距离之平均.以这两个集合为例,[0,8,12,20]和[8,9,11,12] ...

  2. 计算数据集的均值、方差

    目录 1.背景 2.代码 3.说明 1.背景 在进行模型训练时,调整输入数据的均值和方差,能够使模型训练更加稳定.效果更好. 如何计算数据集的均值和方差? 2.代码 ###https://blog.c ...

  3. 概率统计:数学期望、方差、协方差、相关系数、矩

    一  .数学期望(均值): 在概率论和统计学中,数学期望(mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和.是最基本的数学特征之一.它反映随机变量平均取值的大小.其公式如下: ...

  4. 数学常识--标准差、方差、协方差三者的表示意义

    三者都是统计学中,对于样本的集合描述. 一.定义公式 1.标准差: 2.方差:        3.协方差: 4.协方差相关系数: 二.数学实际含义 1.方差(Variance):用来度量随机变量和其数 ...

  5. PyTorch数据归一化处理:transforms.Normalize及计算图像数据集的均值和方差

    PyTorch数据归一化处理:transforms.Normalize及计算图像数据集的均值和方差 1.数据归一化处理:transforms.Normalize 1.1 理解torchvision 1 ...

  6. Python:读取iris数据集中鸢尾花的萼片,花瓣长度,并对其进行排序、去重、并求出和,累计和,均值,标准差、方差、最大值和最小值

    1.导入数据 import numpy as np import csv 2.获取数据 iris_data=[] with open("iris.csv") as csvfile: ...

  7. 标准差和方差为什么除n-1

    标准差和方差为什么除n-1 1 自由度 2 无偏样本方差 1 自由度 当样本数据的个数为n时,若样本平均数确认后,则附加给n个观测值的约束个数就是1个,即最少为1个数,因此只有n-1个数据可以自由取值 ...

  8. 标准差、方差、协方差三者的表示意义

    三者都是统计学中,对于样本的集合描述. 定义公式 标准差: 方差: 协方差: 协方差相关系数: 数学实际含义 方差(Variance):用来度量随机变量和其数学期望(即均值)之间的偏离程度. 标准差: ...

  9. 深度之眼Pytorch打卡(九):Pytorch数据预处理——预处理过程与数据标准化(transforms过程、Normalize原理、常用数据集均值标准差与数据集均值标准差计算)

    前言   前段时间因为一些事情没有时间或者心情学习,现在两个多月过去了,事情结束了,心态也调整好了,所以又来接着学习Pytorch.这篇笔记主要是关于数据预处理过程.数据集标准化与数据集均值标准差计算 ...

最新文章

  1. GDI+ Bitmap与WPF BitmapImage的相互转换
  2. 4K 海思 联咏 芯片_画质的好坏并不只取决于屏幕 电视芯片也很重要
  3. 在线实时大数据平台Storm集群组件学习
  4. String内存分配
  5. js 数组移除_2020前端面试--常见的js面试题
  6. ajax post 请求415\ 400 错误
  7. P6378 [PA2010] Riddle(2-sat/前后缀优化建图)
  8. 35 FI配置-财务会计-应收账款和应付账款-为客户定义备选统驭科目
  9. ASP.NET Forms权限验证
  10. Linux 下的进程间通信:管道、消息队列、共享文件、共享内存
  11. Install Rouge and Pyrouge for python 2.7 (conda virtual env) on Linux 64
  12. bootice添加linux_如何使用老毛桃winpe的Bootice工具新建实模式启动项(Grub/Linux)?
  13. 增强for中操作集合元素的误区---java.util.ConcurrentModificationException
  14. 【转】C#中Serializable序列化实例详解
  15. Labview的CAN通讯
  16. GIAC 2017全球互联网架构大会将于12月在上海举行
  17. 计算机实验报告双绞线制作,双绞线的制作实验报告.docx
  18. 体系结构笔记------动态调度中的Tomasulo算法
  19. 小学生预习能力培养的策略和方法研究 开题报告
  20. Java的Lambda表达式实例

热门文章

  1. python 三维数组 w4[:, 1] 取值
  2. python零基础书推荐_零基础学习Python(Python初学者、Python入门)常见问题:资料、社区、书籍推荐...
  3. redis客户端连接功能详解
  4. 协方差矩阵和散布矩阵(散度矩阵)的意义
  5. 关于servlet的@WebServlet注解。
  6. 强化学习中的好奇心奖励机制
  7. centos 7下的redis 环境搭建以及C语言使用hiredis访问redis
  8. 国家推出新的个人所得税政策,起征点上调值5000元。也就是说税前工资扣除三险一金后如果不足5000元则不交税。如果大于5000元,那么大于5000元的部分按梯度交税
  9. 关于 ubuntu18.04使用QtCcreator无法输入中文 的解决方法
  10. 图形学之Unity渲染管线流程分析