Loop pelatihan pengklasifikasi gambar
Saatnya melatih pengklasifikasi gambar! Anda akan menggunakan Net yang Anda definisikan sebelumnya dan melatihnya untuk membedakan tujuh jenis awan.
Untuk mendefinisikan loss dan optimizer, Anda akan menggunakan fungsi dari torch.nn dan torch.optim, yang masing-masing telah diimpor sebagai nn dan optim. Anda tidak perlu mengubah apa pun pada loop pelatihan itu sendiri: ini persis seperti yang telah Anda tulis sebelumnya, dengan sedikit logika tambahan untuk menampilkan nilai loss selama pelatihan.
Latihan ini adalah bagian dari kursus
Deep Learning Lanjutan dengan PyTorch
Petunjuk latihan
- Definisikan model menggunakan kelas
NetAnda dengannum_classesdisetel ke7dan tetapkan kenet. - Definisikan fungsi loss sebagai cross-entropy loss dan tetapkan ke
criterion. - Definisikan optimizer sebagai Adam, berikan parameter model dan laju pembelajaran
0.001, lalu tetapkan keoptimizer. - Mulai for-loop pelatihan dengan mengiterasi
imagesdanlabelspelatihan daridataloader_train.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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}")