EmpezarEmpieza gratis

Generación de texto con RNN: entrenamiento y generación

El equipo de PyBooks ahora quiere que entrenes y pruebes el modelo RNN, diseñado para predecir el siguiente carácter de la secuencia a partir de la entrada, con el fin de autocompletar nombres de libros. Este proyecto ayudará al equipo a seguir desarrollando modelos para completar texto.

La instancia model de la clase RNNmodel ya está precargada. La variable data ha sido preprocesada y codificada como una secuencia.

Las variables inputs y targets están precargadas para ti.

Este ejercicio forma parte del curso

Deep Learning para texto con PyTorch

Ver curso

Instrucciones del ejercicio

  • Instancia la función de pérdida que se usará para calcular el error de nuestro modelo.
  • Instancia el optimizador desde el módulo de optimización de PyTorch.
  • Ejecuta el proceso de entrenamiento del modelo poniendo el modelo en modo train y poniendo a cero los gradientes antes de realizar un paso de optimización.
  • Tras el entrenamiento, cambia el modelo a modo de evaluación para probarlo con una entrada de ejemplo.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Instantiate the loss function
criterion = nn.____()
# Instantiate the optimizer
optimizer = torch.optim.____(model.parameters(), lr=0.01)

# Train the model
for epoch in range(100):
    model.____()
    outputs = model(inputs)
    loss = criterion(outputs, targets)
    optimizer.____()
    loss.backward()
    optimizer.step()
    if (epoch+1) % 10 == 0:
        print(f'Epoch {epoch+1}/100, Loss: {loss.item()}')

# Test the model
model.____()
test_input = char_to_ix['r']
test_input = nn.functional.one_hot(torch.tensor(test_input).view(-1, 1), num_classes=len(chars)).float()
predicted_output = model(test_input)
predicted_char_ix = torch.argmax(predicted_output, 1).item()
print(f"Test Input: 'r', Predicted Output: '{ix_to_char[predicted_char_ix]}'")
Editar y ejecutar código