代码之家  ›  专栏  ›  技术社区  ›  Godfrey

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

  •  2
  • Godfrey  · 技术社区  · 7 年前

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

    train_transforms = transforms.Compose([transforms.Resize(size=224),
                                           transforms.ToTensor(),  transforms.Normalize((?), (?))
                                           ])
    train_dataset = datasets.ImageFolder(root='roota/',
                                         transform=train_transforms)
    
    1 回复  |  直到 7 年前
        1
  •  5
  •   Monster    7 年前

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

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

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