Python pytorch中自定义数据集的数据预处理(transform.Normalize)

Python pytorch中自定义数据集的数据预处理(transform.Normalize),python,dataset,conv-neural-network,pytorch,Python,Dataset,Conv Neural Network,Pytorch,我是Pytorch和CNN的新手。我对数据预处理有点困惑。不确定如何进行转换。数据集的正常化(本质上,如何计算自定义数据集的平均值和标准v?) 我正在使用ImageFolder加载数据。图像大小不一 train_transforms = transforms.Compose([transforms.Resize(size=224), transforms.ToTensor(), transforms.Normaliz

我是Pytorch和CNN的新手。我对数据预处理有点困惑。不确定如何进行转换。数据集的正常化(本质上,如何计算自定义数据集的平均值和标准v?)

我正在使用ImageFolder加载数据。图像大小不一

train_transforms = transforms.Compose([transforms.Resize(size=224),
                                       transforms.ToTensor(),  transforms.Normalize((?), (?))
                                       ])
train_dataset = datasets.ImageFolder(root='roota/',
                                     transform=train_transforms)

如果您计划从头开始训练网络,您可以计算数据集的统计数据。数据集的统计数据是预先计算的。您可以使用
ImageFolder
在图像中循环以计算数据集统计信息。例如,伪代码-

for inputs, labels in dataloaders:
    # Calculate mean and std dev 
    # save for later processing

通常,CNN与其他较大的数据集(如Imagenet)一起预训练,主要是为了减少训练时间。如果您使用的是预训练网络,您可以使用原始数据集的平均值和标准偏差进行培训

多谢各位。这很有道理。我可以计算一组实际数字的平均值和标准差。不知道这是如何用图像或张量完成的。您是否有一个安静的代码或链接(仅作为一个例子)在您实际做到了这一点?