Trénovací smyčka klasifikátoru obrázků
Čas natrénovat klasifikátor obrázků! Použiješ síť Net, kterou jsi definoval/a dříve, a naučíš ji rozlišovat mezi sedmi typy mraků.
Pro definici ztrátové funkce a optimalizátoru využiješ funkce z torch.nn a torch.optim, které jsou importované jako nn a optim. Samotnou trénovací smyčku měnit nemusíš – je stejná jako ty, které jsi psal/a dříve, jen s přidanou logikou pro výpis hodnoty ztráty během trénování.
Toto cvičení je součástí kurzu
Intermediate Deep Learning with PyTorch
Pokyny k cvičení
- Definuj model pomocí své třídy
Netsnum_classesnastaveným na7a přiřaď ho do proměnnénet. - Definuj ztrátovou funkci jako cross-entropy loss a přiřaď ji do
criterion. - Definuj optimalizátor Adam, předej mu parametry modelu a rychlost učení
0.001, a přiřaď ho dooptimizer. - Spusť trénovací for-cyklus iterací přes trénovací
imagesalabelszdataloader_train.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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}")