KID = KernelInceptionDistance(subsets = 64, subset_size = 20, normalize = True).to(device)
kid_score = []
# Saving KID Score
KID.update(real_imgs.repeat(1, 3, 1, 1), real=True)
KID.update(gen_imgs.repeat(1, 3, 1, 1), real=False)
kid_score.append(KID.compute()[0].item())
< /code>
Ich verwende die Implementierung von TorchMetrics.image.kid.kkernelinInceptionDistance (Dokumentation hier), da es in einem kleinen Datensatz unvoreingenommen ist. Im obigen Code ist Real_imgs auch eine Charge von realen Bildern und Gen_IMGs eine Charge generierter Bilder. Ich speichere alle 10 Epochen und führe das Training für 600 Epochen aus. Da ich derzeit einen Stil -Gan trainiere, haben Real_imgs und Gen_imgs eine Größe von 128, 64, 32 und 16, abhängig vom aktuellen Zustand des Trainings (progressives Wachstum von Stylegan). Ich weiß nicht, ob es sich auf jede Epoche bezieht (ich glaube nicht ...), aber ich obwohl ich mehr generieren sollte, also habe ich versucht, jeweils 1200 Bilder in jeder Epoche zu generieren und die Kid -Score -Variable zu füttern, aber mein Training wird auch mit 10 Checkpoints (nur 10 Kid -Score -Lesungen) nicht abgeschlossen, da aus dem Gedächtnis die GPU aus dem Gedächtnis. />

My questions are:
Is this is a correct way of calculating KID Score to see the overfitting Oder Konvergenz meines Gan? Oder sollte ich einen anderen Ansatz verfolgen? Oder sollten sie eine andere Verteilung haben? Ich glaube>