我收到以下错误:
属性错误:无法在模块之前分配模块。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
。