图像预处理mean和std计算

import torch
import torchvision


def mean_std(image_data):
    '''
    计算数据集图像的mean和std
    image_data: 自定义类Dataset(或ImageFolder即可)
    '''
    print('Number of images are', len(image_data))
    data_loader = torch.utils.data.DataLoader(
        image_data, batch_size=1, shuffle=False, num_workers=0, pin_memory=True)
    mean = torch.zeros(3)
    std = torch.zeros(3)
    for X, _ in data_loader:
        for i in range(3):
            mean[i] += X[:, i, :, :].mean()
            std[i] += X[:, i, :, :].std()
    mean.div_(len(image_data))
    std.div_(len(image_data))
    return list(mean.numpy()), list(std.numpy())


if __name__ == '__main__':
    image_dataset = torchvision.datasets.ImageFolder(root=r'数据集地址', transform=torchvision.transforms.ToTensor())
    print(mean_std(image_dataset))

其他:
1、for d in range(3),RGB图像3通道;若是灰度图,则只需要一次
2、数据集地址里需要建立子文件夹
3、transform=torchvision.transforms.ToTensor(),数据转为tensor格式

参考文章

https://blog.csdn.net/Carpe_Diemly/article/details/115031131
https://blog.csdn.net/weixin_44579633/article/details/123128976
https://blog.csdn.net/PanYHHH/article/details/107896526
https://www.bilibili.com/read/cv14137505/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值