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

Цикл навчання класифікатора зображень

Час тренувати класифікатор зображень! Ви використаєте визначений раніше Net і навчите його розрізняти сім типів хмар.

Щоб визначити функцію втрат і оптимізатор, скористайтеся функціями з torch.nn та torch.optim, які імпортовано для вас як nn і optim відповідно. Вам не потрібно змінювати сам цикл навчання: він такий самий, як ті, що ви вже писали, лише з додатковою логікою для виведення значення втрат під час навчання.

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

Середній рівень Deep Learning з PyTorch

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

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

  • Створіть модель, використавши ваш клас Net із num_classes, встановленим у 7, і присвойте її змінній net.
  • Визначте функцію втрат як перехресну ентропію й присвойте її criterion.
  • Визначте оптимізатор Adam, передавши йому параметри моделі та швидкість навчання 0.001, і присвойте його optimizer.
  • Розпочніть навчальний for-цикл, ітеруючись за тренувальними 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}")
Редагувати та запускати код