【问题标题】:Data preprocessing for custom dataset in pytorch (transform.Normalize)pytorch 中自定义数据集的数据预处理(transform.Normalize)
【发布时间】:2019-02-28 13:30:54
【问题描述】:

我是 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)

【问题讨论】:

    标签: python dataset conv-neural-network pytorch


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢。这很有意义。我可以计算一组实际数字的平均值和标准差。不确定如何使用图像或张量完成此操作。您是否对实际执行过的代码或链接(仅作为示例)感到满意?
    猜你喜欢
    • 2020-09-28
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 2021-07-30
    • 2020-10-09
    • 2021-03-04
    相关资源
    最近更新 更多