Hodnocení GAN

Deep Learning pro obrázky s PyTorchem

Michal Oleszak

Machine Learning Engineer

Generování obrázků

num_images_to_generate = 9
noise = torch.randn(num_images_to_generate, 16)

with torch.no_grad(): fake = gen(noise)
print(f"Generated shape: {fake.shape}")
Generated shape: torch.Size([9, 3, 96, 96])
for i in range(num_images_to_generate):

image_tensor = fake[i, :, :, :]
image_permuted = image_tensor.permute(1, 2, 0)
plt.imshow(image_permuted) plt.show()
  • Vytvoření náhodného šumového tenzoru
  • Předání šumu generátoru
  • Iterace přes počet obrázků
  • Výběr i-tého obrázku z fake
  • Přeuspořádání dimenzí obrázku
  • Vykreslení obrázku
Deep Learning pro obrázky s PyTorchem

Výstupy GAN

Ukázka obrázků Pokémonů vygenerovaných sítí GAN.

Deep Learning pro obrázky s PyTorchem

Fréchet Inception Distance

  • Inception: model klasifikace obrázků
  • Fréchetova vzdálenost: míra vzdálenosti mezi dvěma pravděpodobnostními rozděleními
  • Fréchet Inception Distance:
    1. Pomocí Inception extrahujte příznaky z reálných i falešných obrázků
    2. Vypočítejte střední hodnoty a kovariance příznaků pro reálné a falešné obrázky
    3. Vypočítejte Fréchetovu vzdálenost mezi reálným a falešným normálním rozdělením
  • Nízké FID = falešné obrázky podobné trénovacím datům a rozmanité
  • FID < 10 = dobré
Deep Learning pro obrázky s PyTorchem

FID v PyTorch

from torchmetrics.image.fid import \
FrechetInceptionDistance


fid = FrechetInceptionDistance(feature=64)
fid.update( (fake * 255).to(torch.uint8), real=False)
fid.update( (real * 255).to(torch.uint8), real=True)
fid.compute()
tensor(7.5159)
  • Import FrechetInceptionDistance
  • Vytvoření instance metriky FID
  • Aktualizace metriky falešnými obrázky:
    • Násobení hodnotou 255
    • Převod na torch.uint8
  • Obdobně aktualizace metriky reálnými obrázky
  • Výpočet hodnoty metriky
Deep Learning pro obrázky s PyTorchem

Pojďme procvičovat!

Deep Learning pro obrázky s PyTorchem

Preparing Video For Download...