【问题标题】:Image Net Preprocessing using torch transforms使用 pytorch 转换的 Imagenet 预处理
【发布时间】:2021-07-15 01:04:45
【问题描述】:

我正在尝试重新创建在原始出版物 "Deep Residual Learning for Image Recognition" 中完成的 ImageNet 数据集的数据预处理。正如他们在第 3.4 节的论文中所说: “我们对 ImageNet 的实现遵循 [21, 41] 中的做法。图像被调整大小,其较短的边在 [256,480] 中随机采样以进行缩放 [41]。从图像或其水平方向随机采样 224×224 裁剪翻转,减去每个像素的平均值 [21]。使用 [21] 中的标准颜色增强。”

我已经弄清楚了随机裁剪原始图像或水平翻转的部分,裁剪尺寸为 224x224。其他两部分我没有。其他两部分是调整图像大小,在 [256,480] 中随机采样其短边以进行缩放使用 [21] 中的标准颜色增强。

对于第一个,我在火炬变换中找不到“随机调整大小”功能。第二个,其引用 [21],是(根据 [21])“对整个 ImageNet 训练集的 RGB 像素值集执行 PCA”。完整解释请参考“数据增强”部分中的ImageNet Classification with Deep Convolutional Neural Networks

我将如何重新创建这种类型的预处理?

【问题讨论】:

    标签: python machine-learning pytorch image-preprocessing imagenet


    【解决方案1】:

    第一个需要 3 个组合变换,RandomChoiceResizeRandomCrop

    transforms.Compose([transforms.RandomChoice([transforms.Resize(256), 
                                                 transforms.Resize(480)]),
                        transforms.RandomCrop(224)
                        ])
    

    第二个this 是您正在寻找的,但正式的 Pytorch(以及其他所有人)只是使用它。

    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
    

    如果你觉得这太简单了,standard Tensorflow pre-processing 就是

    x /= 127.5
    x -= 1.
    

    【讨论】:

    • 这太棒了。谢谢你。 :)
    猜你喜欢
    • 2020-04-26
    • 2020-06-21
    • 2020-10-01
    • 2021-09-14
    • 1970-01-01
    • 2021-02-20
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多