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

Генерація тексту за допомогою RNN — тренування та генерація

Команда PyBooks тепер просить вас натренувати й протестувати модель RNN, яку розроблено для передбачення наступного символу в послідовності на основі наданого вводу для автодоповнення назв книжок. Цей проєкт допоможе команді далі розвивати моделі для доповнення тексту.

Екземпляр model класу RNNmodel уже підготовлено для вас. Змінну data попередньо оброблено та закодовано як послідовність.

Змінні inputs і targets також підготовлено для вас.

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

Глибоке навчання для тексту з PyTorch

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

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

  • Створіть функцію втрат, яку буде використано для обчислення похибки нашої моделі.
  • Ініціалізуйте оптимізатор з модуля оптимізації PyTorch.
  • Запустіть процес тренування моделі: установіть режим тренування, зануліть градієнти перед виконанням кроку оптимізації.
  • Після тренування перемкніть модель у режим оцінювання, щоб протестувати її на вибірковому вводі.

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

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

# 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]}'")
Редагувати та запускати код