Implementação Python de cálculo de pontuação FID de geração de imagem

A pontuação FID (Frechet Inception Distance) é um indicador usado para medir a semelhança entre o modelo gerado e o conjunto de dados real. É calculado calculando o grau de diferença entre as amostras geradas e as amostras reais na representação de recursos do Inception rede. de. Quanto menor a pontuação do FID, menor a diferença entre as amostras geradas e as amostras reais e melhor o desempenho do modelo gerado.

plano 1

import torch
import torchvision
import torchvision.transforms as transforms
from pytorch_fid import fid_score

# 准备真实数据分布和生成模型的图像数据
real_images_folder = 'path_to_real_images'
# generated_images_folder = './FID_app3'
generated_images_folder = 'path_to_generated_images'

# 加载预训练的Inception-v3模型
inception_model = torchvision.models.inception_v3(pretrained=True)

# 定义图像变换
transform = transforms.Compose([
    transforms.Resize(299),
    transforms.CenterCrop(299),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
])

# 计算FID距离值
fid_value = fid_score.calculate_fid_given_paths([real_images_folder, generated_images_folder],
                                                 inception_model,
                                                 transform=transform)
# fid_value = fid_score.calculate_fid_given_paths([real_images_folder, generated_images_folder],batch_size=50, device='cuda', dims=2048, num_workers=0)
print('FID value:', fid_value)

Ainda tem que prestar atenção ao pytorch_fid problema da versão.

Cenário 2

Execute o script:

pip install pytorch-fid-0.3.0.tar.gz
python -m pytorch_fid path_to_dataset1 path_to_dataset2 --num-workers 0 --device cuda:0

Este pró-teste está disponível e requer: as formas das imagens nos dois conjuntos de dados são consistentes.

Acho que você gosta

Origin blog.csdn.net/NGUever15/article/details/131002149
Recomendado
Clasificación