他们如何知道平均值和标准,即变换的输入值.正常化



问题是关于PyTorch网站的数据加载教程。我不知道他们是如何写出mean_pix的值和std_pixin 转换的。无需计算即可规范化

我无法在StackOverflow上找到与此问题相关的任何解释。

import torch
from torchvision import transforms, datasets
data_transform = transforms.Compose([
transforms.RandomSizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
])
hymenoptera_dataset = datasets.ImageFolder(root='hymenoptera_data/train',
transform=data_transform)
dataset_loader = torch.utils.data.DataLoader(hymenoptera_dataset,
batch_size=4, shuffle=True,
num_workers=4)

mean=[0.485,0.456, 0.406]std=[0.229, 0.224, 0.225]的价值对我来说并不明显。他们如何获得它们?为什么它们等于这些?

对于归一化input[channel] = (input[channel] - mean[channel]) / std[channel],均值和标准差值取自训练数据集。

在这里,mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225] 是 Imagenet 数据集的平均值和 std。

在 Imagenet 上,我们对数据集进行了传递并计算了每个通道的平均值/标准。 检查这里

torchvision中可用于迁移学习的预训练模型是在 Imagenet 上预先训练的,因此使用其平均值和标准偏差可以微调模型。

如果您尝试从头开始训练模型,最好使用训练数据集(在本例中为人脸数据集(的平均值和标准偏差。除此之外,在大多数情况下,Imagenet 的平均值和标准足以解决您的问题。

相关内容

  • 没有找到相关文章

最新更新