Оценка GAN

Глубокое обучение для работы с изображениями на PyTorch

Michal Oleszak

Machine Learning Engineer

Генерация изображений

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()
  • Создание тензора случайного шума
  • Передача шума генератору
  • Итерация по числу изображений
  • Выбор i-го изображения из fake
  • Перестановка размерностей изображения
  • Отображение изображения
Глубокое обучение для работы с изображениями на PyTorch

Результаты GAN

Пример изображений покемонов, сгенерированных GAN.

Глубокое обучение для работы с изображениями на PyTorch

Расстояние Фреше–Inception

  • Inception: модель классификации изображений
  • Расстояние Фреше: мера расстояния между двумя вероятностными распределениями
  • Расстояние Фреше–Inception:
    1. С помощью Inception извлекаются признаки из реальных и сгенерированных изображений
    2. Вычисляются средние и ковариации признаков для реальных и сгенерированных изображений
    3. Вычисляется расстояние Фреше между нормальными распределениями реальных и сгенерированных изображений
  • Низкий FID = сгенерированные изображения похожи на обучающие данные и разнообразны
  • FID < 10 = хороший результат
Глубокое обучение для работы с изображениями на PyTorch

FID в 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)
  • Импорт FrechetInceptionDistance
  • Создание экземпляра метрики FID
  • Обновление метрики сгенерированными изображениями:
    • Умножение на 255
    • Приведение к типу torch.uint8
  • Аналогично — обновление метрики реальными изображениями
  • Вычисление значения метрики
Глубокое обучение для работы с изображениями на PyTorch

Давайте потренируемся!

Глубокое обучение для работы с изображениями на PyTorch

Preparing Video For Download...