onnx 模型中的 PyTorch 标准化

乘风 pytorch 464

原文标题PyTorch normalization in onnx model

我在 pytorch 中进行图像分类,我使用了这个变换

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

并完成了培训。之后,我将 .pth 模型文件转换为 .onnx 文件

现在,在推理中,我应该如何在 numpy 数组中应用此转换,因为 onnx 处理 numpy 数组中的输入

原文链接:https://stackoverflow.com//questions/71477766/pytorch-normalization-in-onnx-model

回复

我来回复
  • jodag的头像
    jodag 评论

    你有几个选择。

    由于 normalize 编写自己的代码非常简单,因此您可以这样做

    import numpy as np
    mean = np.array([0.485, 0.456, 0.406]).reshape(-1,1,1)
    std = np.array([0.229, 0.224, 0.225]).reshape(-1,1,1)
    x_normalized = (x - mean) / std
    

    它根本不需要 pytorch 或 torchvision 库。

    如果您仍在使用 pytorch 数据集,则可以使用以下转换

    transforms.Compose([
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
        torch.Tensor.numpy  # or equivalently transforms.Lambda(lambda x: x.numpy())
    ])
    

    它只会将规范化应用于张量,然后将其转换为 numpy 数组。

    2年前 0条评论
  • teplandr的头像
    teplandr 评论

    例如,您可以将相同的transforms应用于 np.array。

    2年前 0条评论