EmpezarEmpieza gratis

Entrenar un modelo GAN

Tu equipo en PyBooks ha avanzado mucho construyendo el generador de texto con una Generative Adversarial Network (GAN). Ya has definido correctamente las redes del generador y del discriminador. Ahora toca entrenarlas. El paso final es generar algunos datos falsos y compararlos con los reales para ver qué tan bien ha aprendido tu GAN. Hemos usado tensores como entrada y la salida intentará parecerse a los tensores de entrada. El equipo de PyBooks podrá usar luego estos datos sintéticos para análisis de texto, ya que las características mantendrán la misma relación que en los datos de texto.

El generador y el discriminador se han inicializado y guardado en generator y discriminator, respectivamente.

En el ejercicio se han inicializado las siguientes variables:

  • seq_length = 5: Longitud de cada secuencia de datos sintéticos
  • num_sequences = 100: Número total de secuencias generadas
  • num_epochs = 50: Número de pasadas completas por el conjunto de datos
  • print_every = 10: Frecuencia de visualización de resultados, mostrando cada 10 épocas

Este ejercicio forma parte del curso

Deep Learning para texto con PyTorch

Ver curso

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Define the loss function and optimizer
criterion = nn.____()
optimizer_gen = ____(generator.parameters(), lr=0.001)
optimizer_disc = ____(discriminator.parameters(), lr=0.001)

for epoch in range(num_epochs):
    for real_data in data:
      	# Unsqueezing real_data and prevent gradient recalculations
        real_data = real_data.____(0)
        noise = torch.rand((1, seq_length))
        fake_data = generator(noise)
        disc_real = discriminator(real_data)
        disc_fake = discriminator(fake_data.____())
        loss_disc = criterion(disc_real, torch.ones_like(disc_real)) + criterion(disc_fake, torch.zeros_like(disc_fake))
        optimizer_disc.zero_grad()
        loss_disc.backward()
        optimizer_disc.step()
Editar y ejecutar código