Что я должен добавить в инициализации модели в torch.nn? - PullRequest
0 голосов
/ 08 марта 2020

что нужно добавить в инициализацию модели? у LeakyReLU и Dropout есть обучаемые параметры в данной модели, такие как веса линейного слоя?

class Discriminator(nn.Module):
    def __init__(self):
        super(Discriminator, self).__init__()

        self.label_embedding = nn.Embedding(opt.n_classes, opt.n_classes)
        self.lin= nn.LeakyReLU(0.2, inplace=True)
        print( self.lin.parameters)
        self.model = nn.Sequential(
            nn.Linear(opt.n_classes + int(np.prod(img_shape)), 512),
            nn.LeakyReLU(0.2, inplace=True),
            nn.Linear(512, 512),
            nn.Dropout(0.4),
            nn.LeakyReLU(0.2, inplace=True),
            nn.Linear(512, 512),
            nn.Dropout(0.4),
            nn.LeakyReLU(0.2, inplace=True),
            nn.Linear(512, 1),
        )

1 Ответ

0 голосов
/ 08 марта 2020

Ваша инициализация модели выглядит нормально для меня, просто напишите функцию forward для вызова операций, определенных в __init__, и все будет готово.

Что касается вашего второго вопроса об изучаемых параметрах, ReLU и Leaky ReLU - это просто функции активации, которые выполняют предопределенную операцию. Например, ReLU определяется как max(0,x), поэтому он просто выводит максимальное значение двух входов. Хотя ни в ReLU, ни в Leaky ReLU нет обучаемых параметров, в Leaky ReLU есть гиперпараметр, равный negative_slope, в соответствии с определением его функции max(0, x) + negative_slope * min(0,x).

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