Pytorch: AttributeError: невозможно назначить модуль до вызова модуля .__ init __ (), даже если он инициализирован - PullRequest
0 голосов
/ 05 января 2019

Я получаю следующую ошибку:

AttributeError: невозможно назначить модуль перед модулем. init () call

Я пытаюсь создать экземпляр моего класса:

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 голосов
/ 06 января 2019

На самом деле, я понял, что я не звонил super().__init__() в основной класс ColorizationCycleGAN. Добавление этого решило проблему.

Я надеюсь, что этот ответ напомнит вам о необходимости проверки вызова функции super().__init__() во всех классах, которые наследуются от nn.Module.

...