为什么在 eval 模式下保存的 PyTorch 模型每次运行推理时都会返回不同的结果?

问题描述 投票:0回答:2

在这种情况下,我尝试了所有常规步骤,以确保推理代码本身不存在随机元素,即模型不应根据输入更改其预测。详情请参阅:

为什么在 pytorch 中保存和加载模型权重后得到不同的结果?

pytorch inference torchvision stability
2个回答
0
投票

就我而言,是数据。每次运行时模型的输入都会发生变化。在训练时,我设置了适合训练的随机数据转换。但是,当然,当我准备推理数据时,这引入了随机性。所以我改变了

data_transforms = {
"train": transforms.Compose(
    [
        transforms.RandomResizedCrop(224),
        transforms.RandomHorizontalFlip(),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
    ]
),

至:

data_transforms = {
"train": transforms.Compose(
    [
        transforms.Resize(256),
        transforms.CenterCrop(224),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),

确保了一致性。


0
投票

嗨,我遇到了同样的问题。就我而言,输入始终一致,但问题仍然发生。你能提出任何修复建议吗?

© www.soinside.com 2019 - 2024. All rights reserved.