如何在torchscript中包含单独模块的加载权重?

2024-10-03 17:25:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个文件。一个是主网络,但第二个是主网络的一部分-特征提取层

所以,当我尝试调试并找出我的Python和C++脚本的结果不同的原因时,我发现Enc0和其他都是完全零,但是在Python脚本中,并非所有的值都是零。我的观点是,torchscript没有保存loadweights函数,因为它只在网络部分使用前向脚本

如何正确加载和编写脚本

class FPN(nn.Module):

    def __init__(self, norm_layer, num_filters=256):
        super().__init__()

        self.inception = inceptionresnetv2(num_classes=1000, pretrained='imagenet')

        self.enc0 = self.inception.conv2d_1a
        self.enc1 = nn.Sequential(
            self.inception.conv2d_2a,
            self.inception.conv2d_2b,
            self.inception.maxpool_3a,
        ) # 64
        ...
    def forward(self, x):
        enc0 = self.enc0(x)
        enc1 = self.enc1(enc0)
        ...

Tags: 文件self网络脚本initdef原因nn