在 torchvision.models.resnet34 中训练 resnet 预训练模型时,Pytorch 如何在 ImageNet 中处理图像?
Posted
技术标签:
【中文标题】在 torchvision.models.resnet34 中训练 resnet 预训练模型时,Pytorch 如何在 ImageNet 中处理图像?【英文标题】:How did Pytorch process images in ImageNet when training resnet pretrained models in torchvision.models.resnet34? 【发布时间】:2020-10-01 05:19:03 【问题描述】:我在torchvision.models
中下载了 resnet34 的预训练参数并将它们放入 tensorflow1.X 网络,但在 ImageNet2015 验证集(50,000 张图片)上仅获得 58% 的准确率测试。
我猜这可能是由于对数据集的处理方法不同造成的。我使用的验证是我朋友处理的 TFRecord 格式。
所以我想知道 Pytorch 在训练 resnet34 预训练模型时如何处理 ImageNet 的图像? RGB转BGR?将图片值缩放到 0--1?
【问题讨论】:
【参考方案1】:来自the documentation:
所有预训练模型都期望输入图像以相同方式归一化,即形状为 (3 x H x W) 的 3 通道 RGB 图像的小批量,其中 H 和 W 预计至少为 224。图像必须加载到 [0, 1] 的范围内,然后使用
mean = [0.485, 0.456, 0.406]
和std = [0.229, 0.224, 0.225]
进行标准化。您可以使用以下变换进行归一化:normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])```
文档链接 this example 用于预处理 ImageNet 数据。
【讨论】:
非常感谢兄弟!我打印查看TF_record图片,发现数值在-1到1之间,但是我还是不知道tensorflow是怎么处理Imagnet得到这个格式的,你有没有理想的? 请打开一个新问题并提供用于加载 ImageNet 的代码以及有关您的特定 TFRecords 实现的必要详细信息。以上是关于在 torchvision.models.resnet34 中训练 resnet 预训练模型时,Pytorch 如何在 ImageNet 中处理图像?的主要内容,如果未能解决你的问题,请参考以下文章
在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?