НачатьНачать бесплатно

Цикл обучения классификатора изображений

Пришло время обучить классификатор изображений! Вы будете использовать ранее определённую сеть Net и обучите её различать семь типов облаков.

Для определения функции потерь и оптимизатора используйте функции из torch.nn и torch.optim, которые импортированы как nn и optim соответственно. Изменять сам цикл обучения не нужно: он построен так же, как и предыдущие, но дополнительно выводит значение потерь в процессе обучения.

Это упражнение является частью курса

Глубокое обучение на PyTorch: средний уровень

Посмотреть курс

Инструкции к упражнению

  • Создайте модель на основе класса Net, задав num_classes равным 7, и присвойте её переменной net.
  • Определите функцию потерь как кросс-энтропийную и присвойте её переменной criterion.
  • Определите оптимизатор Adam, передав ему параметры модели и скорость обучения 0.001, и присвойте его переменной optimizer.
  • Запустите цикл обучения, перебирая изображения images и метки labels из dataloader_train.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Define the model
____ = ____
# Define the loss function
____ = ____
# Define the optimizer
____ = ____

for epoch in range(3):
    running_loss = 0.0
    # Iterate over training batches
    ____
        optimizer.zero_grad()
        outputs = net(images)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()
        running_loss += loss.item()
    
    epoch_loss = running_loss / len(dataloader_train)
    print(f"Epoch {epoch+1}, Loss: {epoch_loss:.4f}")
Редактировать и запускать код