Mengevaluasi GAN

Deep Learning untuk Gambar dengan PyTorch

Michal Oleszak

Machine Learning Engineer

Menghasilkan gambar

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()
  • Buat tensor noise acak
  • Umpankan noise ke generator
  • Iterasi sesuai jumlah gambar
  • Slice fake untuk memilih gambar ke-i
  • Ubah urutan dimensi gambar
  • Plot gambar
Deep Learning untuk Gambar dengan PyTorch

Hasil GAN

Contoh gambar Pokemon yang dihasilkan GAN.

Deep Learning untuk Gambar dengan PyTorch

Fréchet Inception Distance

  • Inception: model klasifikasi gambar
  • Jarak Fréchet: ukuran jarak antar dua sebaran peluang
  • Fréchet Inception Distance:
    1. Gunakan Inception untuk mengekstrak fitur dari sampel gambar real dan palsu
    2. Hitung mean dan kovarians fitur untuk gambar real dan palsu
    3. Hitung jarak Fréchet antara sebaran normal real dan palsu
  • FID rendah = palsu mirip data latih dan beragam
  • FID < 10 = baik
Deep Learning untuk Gambar dengan PyTorch

FID di 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)
  • Impor FrechetInceptionDistance
  • Instansiasi metrik FID
  • Perbarui metrik dengan gambar palsu:
    • Kalikan 255
    • Ubah ke torch.uint8
  • Perbarui juga dengan gambar real
  • Hitung nilai metrik
Deep Learning untuk Gambar dengan PyTorch

Ayo berlatih!

Deep Learning untuk Gambar dengan PyTorch

Preparing Video For Download...