Ich arbeite als Teil meines Projekts mit Cyclegan (Pytorch -Implementierung) und verstehe den größten Teil der Implementierung von Cyclegan. Eine der Modifikationen ist das Zyklus -Konsistenzgewicht, den ich nicht weiß, wie ich angewendet werden soll. < /P>
optimizer_G.zero_grad()
# Identity loss
loss_id_A = criterion_identity(G_BA(real_A), real_A)
loss_id_B = criterion_identity(G_AB(real_B), real_B)
loss_identity = (loss_id_A + loss_id_B) / 2
# GAN loss
fake_B = G_AB(real_A)
loss_GAN_AB = criterion_GAN(D_B(fake_B), valid)
fake_A = G_BA(real_B)
loss_GAN_BA = criterion_GAN(D_A(fake_A), valid)
loss_GAN = (loss_GAN_AB + loss_GAN_BA) / 2
# Cycle consistency loss
recov_A = G_BA(fake_B)
loss_cycle_A = criterion_cycle(recov_A, real_A)
recov_B = G_AB(fake_A)
loss_cycle_B = criterion_cycle(recov_B, real_B)
loss_cycle = (loss_cycle_A + loss_cycle_B) / 2
# Total loss
loss_G = loss_GAN +
lambda_cyc * loss_cycle + #lambda_cyc is 10
lambda_id * loss_identity #lambda_id is 0.5 * lambda_cyc
loss_G.backward()
optimizer_G.step()
< /code>
Meine Frage ist, wie kann ich das Gewicht des Zykluskonsistenzverlusts nach und nach verfallen? Wir schlagen vor, allmählich das Gewicht des Zykluskonsistenzverlusts λ als Trainingsfortschritt zu verfallen. Wir sollten jedoch immer noch sicherstellen>
Nach und nach das Gewicht der Verlustfunktion verfallen ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post