我遇到以下错误:
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
答案 0 :(得分:0)
实际上,我意识到我没有在主类super().__init__()
中调用ColorizationCycleGAN
。添加此功能即可解决问题。
我希望这个答案的作用是提醒您检查从super().__init__()
继承的所有类中是否调用nn.Module
函数。