Loading a pretrained model in PyTorch, error:object not callable

Loading a pretrained model in PyTorch, error:object not callable

我正在尝试使用 PyTorchFastai:

加载 Efficientnet-b6 权重
PATH = '../input/EffnetB6/efficientnet_b6.pth'
model = torch.load(PATH)

以上模型是另一个模型的一部分:

class EARUnet(nn.Module):
    def __init__(self, pretrained_net, out_ch=1):
        super(EARUnet, self).__init__()
        # print("EfficientUnet_git_b6_res")
        self.pretrained_net = pretrained_net
        .
        .
       

当我运行:

net = EARUnet(model,1)
learn.fit_flat_cos(10) 

我收到这个错误:

TypeError: 'collections.OrderedDict' object is not callable

请求的模型格式是什么?

鉴于受限上下文,我怀疑问题出在 model,可能包含 EfficientNet 模型状态字典的 OrderedDict,而 EARUnet 需要 EfficientNet nn.Module

您应该改为尝试以下操作:

eff_net = EfficientNetB6()
eff_net_state_dict = torch.load(PATH)
eff_net.load_state_dict(eff_net_state_dict)

net = EARUnet(model, 1)

查看此page了解更多详情。