GAN'leri değerlendirme

PyTorch ile Görüntüler için Deep Learning

Michal Oleszak

Machine Learning Engineer

Görüntü üretme

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()
  • Rastgele gürültü tensörü oluşturun
  • Gürültüyü üreticiye verin
  • Görüntü sayısı kadar yineleyin
  • i'inci görüntüyü seçmek için fake'i dilimleyin
  • Görüntü boyutlarını yeniden düzenleyin
  • Görüntüyü çizin
PyTorch ile Görüntüler için Deep Learning

GAN üretimleri

Bir GAN tarafından üretilen Pokémon görselleri örneği.

PyTorch ile Görüntüler için Deep Learning

Fréchet Inception Distance

  • Inception: Görüntü sınıflandırma modeli
  • Fréchet uzaklığı: İki olasılık dağılımı arasındaki uzaklık ölçüsü
  • Fréchet Inception Distance:
    1. Gerçek ve sahte görüntülerden özellik çıkarmak için Inception'ı kullanın
    2. Gerçek ve sahte için özelliklerin ortalama ve kovaryanslarını hesaplayın
    3. Gerçek ve sahte normal dağılımlar arasındaki Fréchet uzaklığını hesaplayın
  • Düşük FID = sahte veriler eğitime benzer ve çeşitlidir
  • FID < 10 = iyi
PyTorch ile Görüntüler için Deep Learning

PyTorch'ta FID

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)
  • FrechetInceptionDistance'ı içe aktarın
  • FID metriğini oluşturun
  • Metriği sahte görüntülerle güncelleyin:
    • 255 ile çarpın
    • torch.uint8'e dönüştürün
  • Benzer şekilde, gerçek görüntülerle güncelleyin
  • Metriği hesaplayın
PyTorch ile Görüntüler için Deep Learning

Hadi pratik yapalım!

PyTorch ile Görüntüler için Deep Learning

Preparing Video For Download...