繁体   English   中英

在PyTorch中加载预训练的model,错误:object不可调用

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

我正在尝试使用PyTorchFastai加载Efficien.net-b6权重:

PATH = '../input/EffnetB6/efficientnet_b6.pth'
model = torch.load(PATH)

上面的model是另一个model的一部分:

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 model state dict 的OrderedDict ,而 EAR.net 期望 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)

查看此页面了解更多详情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM