FID指标复现踩坑避坑 文本生成图像FID定量实验全流程复现(Fréchet Inception Distance )定量评价实验踩坑避坑流程

目录

  • 一、FID分数简介
  • 二、FID分数 CUB定量实验步骤
    • 2.1、下载FID计算代码
    • 2.2、下载FID预训练好的模型
    • 2.3、修改代码
    • 2.4、输入终端命令

一、FID分数简介

FID全称为:Fréchet Inception Distance。

FID分数用于根据预训练网络提取的特征,测量真实图像分布和生成图像分布之间的距离。真实图像在空间中是服从一个分布的(假设为正态分布),而GAN生成的特征也是一个分布,GAN做的事情就是不断训练使这两个分布尽可能的相同。FID就是计算这两个分布直接的距离,使用的距离算法叫做Frechet distance。

FID计算两个分布之间的距离,距离越小代表生成的分布越贴近于真实分布,故FID越小越好。

二、FID分数 CUB定量实验步骤

2.1、下载FID计算代码

github下载:https://github.com/MinfengZhu/DM-GAN/tree/master/eval/FID

FID指标复现踩坑避坑 文本生成图像FID定量实验全流程复现(Fréchet Inception Distance )定量评价实验踩坑避坑流程_第1张图片
将其放入code目录中
FID指标复现踩坑避坑 文本生成图像FID定量实验全流程复现(Fréchet Inception Distance )定量评价实验踩坑避坑流程_第2张图片

2.2、下载FID预训练好的模型

谷歌云盘链接:https://drive.google.com/file/d/1747il5vnY2zNkmQ1x_8hySx537ZAJEtj
CSDN链接:FID训练好的模型 针对CUB-birds的FID预训练模型

下载后是一个npz文件,将其放入指定文件夹位置
FID指标复现踩坑避坑 文本生成图像FID定量实验全流程复现(Fréchet Inception Distance )定量评价实验踩坑避坑流程_第3张图片

2.3、修改代码

打开img_data.py,定位到43行左右,将path改为自己的netG所在的路径:

if __name__ == '__main__':
    path = "/models/bird/netG.pth"
    batch_size = 16
    dataset = Dataset(path, transforms.Compose([
        transforms.Resize(299),
        transforms.ToTensor(),
        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
        # transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
    ]))

2.4、输入终端命令

打开终端,输入命令为:python fid_score.py --gpu 0 --batch-size 24 --path1 eval/FID/bird_val.npz --path2 ../test/valid/single
其中后面的两个参数path1代表你放FID预训练的模型所在位置,path2代表你放生成的图片的位置。

运行后显示:
FID指标复现踩坑避坑 文本生成图像FID定量实验全流程复现(Fréchet Inception Distance )定量评价实验踩坑避坑流程_第4张图片

你可能感兴趣的:(文本生成图像,text-to-image,深度学习,T2I,文本生成图像,GAN,inception)