Pytorch:属性错误:即使在初始化Module.__init__()调用之前也无法分配模块



我收到以下错误:

属性错误:无法在模块之前分配模块。init() 调用

我正在尝试创建我的类的实例:

class ResNetGenerator(nn.Module):
    def __init__(self, input_nc=3, output_nc=3, n_residual_blocks=9, use_dropout=False):
        # super(ResNetGenerator, self).__init__()
        super().__init__()

我打电话给super().__init__()但徒劳无功。

我在这里做错了什么?

完整回溯:

File "train.py", line 40, in <module>
    model = ColorizationCycleGAN(args)
File "/path/cycle_gan.py", line 27, in __init__
    self.G_A2B = ResNetGenerator(input_nc=self.input_nc, output_nc=self.output_nc, n_residual_blocks=9, use_dropout=False)
File "/path/.local/lib/python3.6/site packages/torch/nn/modules/module.py", line 544, in __setattr__
    "cannot assign module before Module.__init__() call")
AttributeError: cannot assign module before Module.__init__() call

事实上,我意识到我没有在主类中调用super().__init__() ColorizationCycleGAN .添加它解决了问题。

我希望这个答案能起到提醒你检查调用super().__init__()函数的效果,这些类继承自nn.Module

最新更新