目录

1.背景

2.代码

3.说明


1.背景

在进行模型训练时,调整输入数据的均值和方差,能够使模型训练更加稳定、效果更好。

如何计算数据集的均值和方差?

2.代码

###https://blog.csdn.net/weixin_43105540/article/details/119570461
from itertools import repeat
import os
from multiprocessing.pool import ThreadPool
from pathlib import Path
from PIL import Image
import numpy as np
from tqdm import tqdmNUM_THREADS = os.cpu_count()def calc_channel_sum(img_path):  # 计算均值的辅助函数,统计单张图像颜色通道和,以及像素数量img = np.array(Image.open(img_path).convert('RGB')) / 255.0  # 准换为RGB的array形式h, w, _ = img.shapepixel_num = h * wchannel_sum = img.sum(axis=(0, 1))  # 各颜色通道像素求和return channel_sum, pixel_numdef calc_channel_var(img_path, mean):  # 计算标准差的辅助函数img = np.array(Image.open(img_path).convert('RGB')) / 255.0channel_var = np.sum((img - mean) ** 2, axis=(0, 1))return channel_varif __name__ == '__main__':train_path = Path(r'C:\Users\Administrator\Desktop\train')img_f = list(train_path.rglob('*.png'))n = len(img_f)result = ThreadPool(NUM_THREADS).imap(calc_channel_sum, img_f)  # 多线程计算channel_sum = np.zeros(3)cnt = 0pbar = tqdm(enumerate(result), total=n)for i, x in pbar:channel_sum += x[0]cnt += x[1]mean = channel_sum / cntprint("R_mean is %f, G_mean is %f, B_mean is %f" % (mean[0], mean[1], mean[2]))result = ThreadPool(NUM_THREADS).imap(lambda x: calc_channel_var(*x), zip(img_f, repeat(mean)))channel_sum = np.zeros(3)pbar = tqdm(enumerate(result), total=n)for i, x in pbar:channel_sum += xvar = np.sqrt(channel_sum / cnt)print("R_var is %f, G_var is %f, B_var is %f" % (var[0], var[1], var[2]))

3.说明

代码借鉴自网上。

使用时,只需要修改待计算的数据集路径即可。

计算数据集的均值、方差相关推荐

  1. 计算数据集的均值和方差(mean,std)

    coco数据集的均值和方差(三分量顺序是RGB) mean = [0.471, 0.448, 0.408] std = [0.234, 0.239, 0.242] imagenet数据集的均值和方差( ...

  2. torch标准化_计算pytorch标准化(Normalize)所需要数据集的均值和方差实例

    pytorch做标准化利用transforms.Normalize(mean_vals, std_vals),其中常用数据集的均值方差有: if 'coco' in args.dataset: mea ...

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

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

  4. 计算图像数据集的均值和方差(mean, std)用于transforms.Normalize()标准化

    Pytorch图像预处理时,通常使用transforms.Normalize(mean, std)对图像按通道进行标准化,即减去均值,再除以方差.这样做可以加快模型的收敛速度.其中参数mean和std ...

  5. 简单教你计算图片数据集的均值和方差

    当要对图片数据集进行归一化时,需要计算它的均值和方差. 步骤如下: 先导入图片数据集,用ImageFolder()导入,再把图片转换为张量,用ToTenser()转换,遍历每一张图片,接着遍历每一张图 ...

  6. python使用numpy中的np.mean函数计算数组的均值、np.var函数计算数据的方差、np.std函数计算数组的标准差

    python使用numpy中的np.mean函数计算数组的均值.np.var函数计算数据的方差.np.std函数计算数组的标准差 目录

  7. pandas隔行计算均值方差(相邻行或隔行的均值/方差)

    目前没有找到一个函数来做这件事的,因此自己敲一个: 计算相邻两行的均值: dataframe['length_mean'] = (dataframe['length'].shift(-1) + \da ...

  8. 用均值方差法计算边际VaR值和成分VaR值(Python)

    tushare ID:432833 边际VaR值和成分VaR值定义 VaR:Value at Risks,在险价值,是指未来一段特定的时间内,在市场正常波动的情况下,某一金融资产或投资组合在给定置信水 ...

  9. python算方差_python计算均值方差

    用Python求均值与方差,可以自己写,也可以借助于numpy,不过到底哪个快一点呢? 我做了个实验,首先生成9百万个样本: nlist=range(0,9000000) nlist=[float(i ...

最新文章

  1. 终于把XGBoost总结写出来了!
  2. 基于MeanShift的目标跟踪算法及实现
  3. Linux系统查看分区文件系统类型
  4. 【python opencv 计算机视觉零基础到实战】二、 opencv文件格式与摄像头读取
  5. 实践:SpringBoot实现定时任务的动态增删启停
  6. 代码统计工具有哪几种_DevOps:优秀代码分析工具的自我修养
  7. Vue.js组件的重要选项
  8. Oracle用户密码使用特殊符号,例如(AND)、$(Dollar)、#(Pound)、*(Star)等
  9. PHP中输出本地时间
  10. Genomic characterization of metastatic breast cancers 转移性乳腺癌的基因组特征
  11. Leetcode 刷题笔记(二十六) ——动态规划篇之经典问题:打家劫舍
  12. ip网络广播系统连接服务器失败,航天广电数字IP网络广播系统安装IP地址调试6大知识...
  13. matlab导出高分辨率图片
  14. OAuth2资源服务器
  15. 【H2O系列001】H2O概述
  16. 判断手机是否有虚拟键盘
  17. mysql datesub interval_Mysql之INTERVAL与DATE_SUB与EXTRACT函数的使用
  18. Cepton宣布与美国底特律顶级汽车制造商合作,赢得业内最大ADAS激光雷达量产订单
  19. 例说hg(四)———— 杂说hg使用场景
  20. 大数据风控AI竞赛总结

热门文章

  1. 伟景行citymaker-----01.javascript打开本地模型CEP,加载目录树,加载要素类
  2. centos5-6修复心血漏洞
  3. 菜鸟打造智慧物流平台 引领物流新风潮
  4. Python第五周作业
  5. hey 安装_如何使用“ Hey Siri”在Mac上启动Siri
  6. 持续集成:Jenkins Pipeline共享库定义和使用
  7. Docker容器基础
  8. Unity 内置访问安卓权限
  9. Oracle之创建定时任务
  10. 高考数学辅导高考数学题型全归纳