Pierderea discriminatorului
Este momentul să definești pierderea pentru discriminator. Reamintește-ți că rolul discriminatorului este să clasifice imaginile ca reale sau false. Prin urmare, discriminatorul înregistrează o pierdere dacă clasifică greșit rezultatele generatorului ca reale (eticheta 1) sau imaginile reale ca false (eticheta 0).
Definește funcția disc_loss(), care calculează pierderea discriminatorului. Aceasta primește cinci argumente:
gen, modelul generatordisc, modelul discriminatorreal, un eșantion de imagini reale din datele de antrenamentnum_images, numărul de imagini dintr-un lotz_dim, dimensiunea zgomotului aleator de intrare
Acest exercițiu face parte din cursul
Deep Learning pentru imagini cu PyTorch
Instrucțiuni pentru exercițiu
- Folosește discriminatorul pentru a clasifica imaginile
fakeși atribuie predicțiile variabileidisc_pred_fake. - Calculează componenta de pierdere pentru imaginile false apelând
criterioncu predicțiile discriminatorului pentru imaginile false și un tensor de zerouri cu aceeași formă. - Folosește discriminatorul pentru a clasifica imaginile
realși atribuie predicțiile variabileidisc_pred_real. - Calculează componenta de pierdere pentru imaginile reale apelând
criterioncu predicțiile discriminatorului pentru imaginile reale și un tensor de unu cu aceeași formă.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
def disc_loss(gen, disc, real, num_images, z_dim):
criterion = nn.BCEWithLogitsLoss()
noise = torch.randn(num_images, z_dim)
fake = gen(noise)
# Get discriminator's predictions for fake images
disc_pred_fake = ____
# Calculate the fake loss component
fake_loss = ____
# Get discriminator's predictions for real images
disc_pred_real = ____
# Calculate the real loss component
real_loss = ____
disc_loss = (real_loss + fake_loss) / 2
return disc_loss