Đánh giá GAN

Deep Learning cho Ảnh với PyTorch

Michal Oleszak

Machine Learning Engineer

Tạo ảnh

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()
  • Tạo tensor nhiễu ngẫu nhiên
  • Truyền nhiễu vào generator
  • Lặp qua số ảnh
  • Cắt fake để chọn ảnh thứ i
  • Hoán vị thứ nguyên ảnh
  • Vẽ ảnh
Deep Learning cho Ảnh với PyTorch

Ảnh GAN tạo ra

Mẫu ảnh Pokemon do GAN tạo.

Deep Learning cho Ảnh với PyTorch

Fréchet Inception Distance

  • Inception: mô hình phân loại ảnh
  • Khoảng cách Fréchet: độ đo giữa hai phân phối xác suất
  • Fréchet Inception Distance (FID):
    1. Dùng Inception trích xuất đặc trưng từ mẫu ảnh thật và giả
    2. Tính trung bình và hiệp phương sai đặc trưng cho ảnh thật và giả
    3. Tính khoảng cách Fréchet giữa hai phân phối chuẩn thật và giả
  • FID thấp = ảnh giả giống dữ liệu huấn luyện và đa dạng
  • FID < 10 = tốt
Deep Learning cho Ảnh với PyTorch

FID trong 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
  • Khởi tạo chỉ số FID
  • Cập nhật với ảnh giả:
    • Nhân 255
    • Ép kiểu sang torch.uint8
  • Tương tự, cập nhật với ảnh thật
  • Tính giá trị chỉ số
Deep Learning cho Ảnh với PyTorch

Ayo berlatih!

Deep Learning cho Ảnh với PyTorch

Preparing Video For Download...