Цикл навчання класифікатора зображень
Час тренувати класифікатор зображень! Ви використаєте визначений раніше 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}")