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

jhdbpxl9  于 2023-03-02  发布在  其他
关注(0)|答案(1)|浏览(218)

在这种情况下,我尝试了所有常见的步骤,以确保推理代码本身没有随机元素,即模型不应基于输入更改其预测。
Why am I getting different results after saving and loading model weights in pytorch?

bn31dyow

bn31dyow1#

在我的例子中,是数据。模型的输入在每次运行时都在改变。在训练时,我设置了适合训练的随机数据转换。但是,当然,这在我准备数据进行推理时引入了随机性。所以我改变了

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]),

这确保了一致性。

相关问题