IniziaInizia gratis

Generazione di testo con RNN - Addestramento e Generazione

Il team di PyBooks ora vuole che tu addestri e testi il modello RNN, progettato per prevedere il carattere successivo nella sequenza in base all'input fornito, per l'auto-completamento dei titoli dei libri. Questo progetto aiuterà il team a sviluppare ulteriormente modelli per il completamento del testo.

L'istanza model della classe RNNmodel è già caricata per te. La variabile data è stata pre-processata e codificata come sequenza.

Le variabili inputs e targets sono già pre-caricate per te.

Questo esercizio fa parte del corso

Deep Learning per il testo con PyTorch

Visualizza il corso

Istruzioni dell'esercizio

  • Istanzia la funzione di loss che verrà usata per calcolare l'errore del nostro modello.
  • Istanzia l'ottimizzatore dal modulo di ottimizzazione di PyTorch.
  • Esegui il processo di addestramento impostando il modello in modalità train e azzerando i gradienti prima di effettuare uno step di ottimizzazione.
  • Dopo l'addestramento, passa il modello in modalità di valutazione per testarlo su un input di esempio.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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]}'")
Modifica ed esegui il codice