簡體   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