Pytorch:AttributeError:即使初始化,也无法在Module .__ init __()调用之前分配模块

时间:2019-01-05 15:06:56

标签: python-3.x deep-learning pytorch

我遇到以下错误:

  

AttributeError:无法在模块之前分配模块。 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

1 个答案:

答案 0 :(得分:0)

实际上,我意识到我没有在主类super().__init__()中调用ColorizationCycleGAN。添加此功能即可解决问题。

我希望这个答案的作用是提醒您检查从super().__init__()继承的所有类中是否调用nn.Module函数。