ПочатиПочніть безкоштовно

Генератор

Генератор GAN приймає на вході вектор випадкового шуму та створює згенероване зображення. Щоб зробити архітектуру більш багаторазовою, ви передасте як параметри моделі і форму входу, і форму виходу. Так можна використовувати ту саму модель з різними розмірами вхідного шуму та зображеннями різних форм.

Бібліотеку torch.nn вже імпортовано для вас як nn. Також у вас є доступ до користувацької функції gen_block(), яка повертає блок із: лінійного шару, пакетної нормалізації та активації ReLU. Ви використаєте її як будівельний блок для генератора.

def gen_block(in_dim, out_dim):
    return nn.Sequential(
        nn.Linear(in_dim, out_dim),
        nn.BatchNorm1d(out_dim),
        nn.ReLU(inplace=True)
    )

Ця вправа є частиною курсу

Глибоке навчання для зображень із PyTorch

Переглянути курс

Інструкції до вправи

  • Визначте self.generator як послідовну модель.
  • Після останнього gen_block додайте лінійний шар з відповідним розміром входу та розміром виходу out_dim.
  • Додайте сигмоїдну активацію після лінійного шару.
  • У методі forward() пропустіть вхід моделі через self.generator.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

class Generator(nn.Module):
    def __init__(self, in_dim, out_dim):
        super(Generator, self).__init__()
        # Define generator block
        self.generator = ____(
            gen_block(in_dim, 256),
            gen_block(256, 512),
            gen_block(512, 1024),
          	# Add linear layer
            ____
            # Add activation
            ____
        )

    def forward(self, x):
      	# Pass input through generator
        return ____
Редагувати та запускати код