LoslegenKostenlos loslegen

Textgenerierung mit RNN – Training und Generierung

Das Team von PyBooks möchte nun, dass du das RNN-Modell trainierst und testest. Es ist darauf ausgelegt, anhand der gegebenen Eingabe das nächste Zeichen in der Sequenz vorherzusagen, um Buchtitel automatisch zu vervollständigen. Dieses Projekt hilft dem Team, Modelle zur Textvervollständigung weiterzuentwickeln.

Die model-Instanz der Klasse RNNmodel ist bereits für dich geladen. Die Variable data wurde vorverarbeitet und als Sequenz kodiert.

Die Variablen inputs und targets sind für dich vorab geladen.

Diese Übung ist Teil des Kurses

Deep Learning für Text mit PyTorch

Kurs anzeigen

Anleitung zur Übung

  • Instanziiere die Verlustfunktion, mit der der Fehler unseres Modells berechnet wird.
  • Instanziiere den Optimizer aus dem Optimierungsmodul von PyTorch.
  • Führe den Trainingsprozess aus, indem du das Modell in den Train-Modus versetzt und die Gradienten nullst, bevor du einen Optimierungsschritt durchführst.
  • Schalte das Modell nach dem Training in den Evaluierungsmodus, um es mit einer Beispiel-Eingabe zu testen.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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]}'")
Code bearbeiten und ausführen