Добавление модулей в Пользовательский модуль Pytorch - PullRequest
0 голосов
/ 08 июня 2018

Считается ли плохой практикой добавлять модули в пользовательский pytorch nn.Module, используя self.add_module()?Кажется, что вся документация присваивает слоям свойства, а затем обращается к ним методом forward().

Например:

class ConvLayer(nn.Module):
    def __init__(self):
        self.add_module('conv',nn.Conv2d(...))
        self.add_module('bn',nn.BatchNorm2d(...))

1 Ответ

0 голосов
/ 24 июля 2018

Вызов add_module добавит запись к диктанту _modules.Класс Module также перезаписывает __getattr__, поэтому при попытке доступа к слою он будет выглядеть внутри диктанта _modules, несмотря на то, что слой на самом деле не является атрибутом объекта.Но с точки зрения пользователя не имеет значения, возвращает ли module.layer фактическое свойство или просто элемент из какого-то частного диктанта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...