计算数据集的均值、方差
目录
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.说明
代码借鉴自网上。
使用时,只需要修改待计算的数据集路径即可。
计算数据集的均值、方差相关推荐
- 计算数据集的均值和方差(mean,std)
coco数据集的均值和方差(三分量顺序是RGB) mean = [0.471, 0.448, 0.408] std = [0.234, 0.239, 0.242] imagenet数据集的均值和方差( ...
- torch标准化_计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
pytorch做标准化利用transforms.Normalize(mean_vals, std_vals),其中常用数据集的均值方差有: if 'coco' in args.dataset: mea ...
- PyTorch数据归一化处理:transforms.Normalize及计算图像数据集的均值和方差
PyTorch数据归一化处理:transforms.Normalize及计算图像数据集的均值和方差 1.数据归一化处理:transforms.Normalize 1.1 理解torchvision 1 ...
- 计算图像数据集的均值和方差(mean, std)用于transforms.Normalize()标准化
Pytorch图像预处理时,通常使用transforms.Normalize(mean, std)对图像按通道进行标准化,即减去均值,再除以方差.这样做可以加快模型的收敛速度.其中参数mean和std ...
- 简单教你计算图片数据集的均值和方差
当要对图片数据集进行归一化时,需要计算它的均值和方差. 步骤如下: 先导入图片数据集,用ImageFolder()导入,再把图片转换为张量,用ToTenser()转换,遍历每一张图片,接着遍历每一张图 ...
- python使用numpy中的np.mean函数计算数组的均值、np.var函数计算数据的方差、np.std函数计算数组的标准差
python使用numpy中的np.mean函数计算数组的均值.np.var函数计算数据的方差.np.std函数计算数组的标准差 目录
- pandas隔行计算均值方差(相邻行或隔行的均值/方差)
目前没有找到一个函数来做这件事的,因此自己敲一个: 计算相邻两行的均值: dataframe['length_mean'] = (dataframe['length'].shift(-1) + \da ...
- 用均值方差法计算边际VaR值和成分VaR值(Python)
tushare ID:432833 边际VaR值和成分VaR值定义 VaR:Value at Risks,在险价值,是指未来一段特定的时间内,在市场正常波动的情况下,某一金融资产或投资组合在给定置信水 ...
- python算方差_python计算均值方差
用Python求均值与方差,可以自己写,也可以借助于numpy,不过到底哪个快一点呢? 我做了个实验,首先生成9百万个样本: nlist=range(0,9000000) nlist=[float(i ...
最新文章
- 终于把XGBoost总结写出来了!
- 基于MeanShift的目标跟踪算法及实现
- Linux系统查看分区文件系统类型
- 【python opencv 计算机视觉零基础到实战】二、 opencv文件格式与摄像头读取
- 实践:SpringBoot实现定时任务的动态增删启停
- 代码统计工具有哪几种_DevOps:优秀代码分析工具的自我修养
- Vue.js组件的重要选项
- Oracle用户密码使用特殊符号,例如(AND)、$(Dollar)、#(Pound)、*(Star)等
- PHP中输出本地时间
- Genomic characterization of metastatic breast cancers 转移性乳腺癌的基因组特征
- Leetcode 刷题笔记(二十六) ——动态规划篇之经典问题:打家劫舍
- ip网络广播系统连接服务器失败,航天广电数字IP网络广播系统安装IP地址调试6大知识...
- matlab导出高分辨率图片
- OAuth2资源服务器
- 【H2O系列001】H2O概述
- 判断手机是否有虚拟键盘
- mysql datesub interval_Mysql之INTERVAL与DATE_SUB与EXTRACT函数的使用
- Cepton宣布与美国底特律顶级汽车制造商合作,赢得业内最大ADAS激光雷达量产订单
- 例说hg(四)———— 杂说hg使用场景
- 大数据风控AI竞赛总结