tobran / DF-GAN

[CVPR2022 oral] A Simple and Effective Baseline for Text-to-Image Synthesis
Other
297 stars 67 forks source link

关于获得FID的方法 #18

Closed ZzqLKED closed 2 years ago

ZzqLKED commented 2 years ago

现在正在学习并尝试复现DF-GAN的代码。但是我不知道要如何进行FID评分。根据github的代码以及提供的模型(netG_600.pth)进行评分的准备时,会生成2928张图片。但是在根据github的说明使用DM-GAN的FID代码进行评分时,只有55的分数。因此我在担心是否是我操作有误。我获取FID的评分时使用的代码是(python> fid_score.py --gpu 0 --batch-size 24 --path1 bird_val.npz --path2> ../../test/valid/single)

PeleLiu777 commented 2 years ago

现在正在学习并尝试复现DF-GAN的代码。但是我不知道要如何进行FID评分。根据github的代码以及提供的模型(netG_600.pth)进行评分的准备时,会生成2928张图片。但是在根据github的说明使用DM-GAN的FID代码进行评分时,只有55的分数。因此我在担心是否是我操作有误。我获取FID的评分时使用的代码是(python> fid_score.py --gpu 0 --batch-size 24 --path1 bird_val.npz --path2> ../../test/valid/single)

CUB数据集出图要出30,000张,才能复现模型的效果(DM-GAN是这样的),DF-GAN论文上也是说出图30,000张

callmexiaowei commented 2 years ago

我下载的预训练的600的模型,30000张的效果只有FID 22,而且R精度只有30多,是代码还没有更新吗?DM的FID和R精度是对的,一样的测试代码

Cwj1212 commented 2 years ago

现在正在学习并尝试复现DF-GAN的代码。但是我不知道要如何进行FID评分。根据github的代码以及提供的模型(netG_600.pth)进行评分的准备时,会生成2928张图片。但是在根据github的说明使用DM-GAN的FID代码进行评分时,只有55的分数。因此我在担心是否是我操作有误。我获取FID的评分时使用的代码是(python> fid_score.py --gpu 0 --batch-size 24 --path1 bird_val.npz --path2> ../../test/valid/single)

CUB数据集出图要出30,000张,才能复现模型的效果(DM-GAN是这样的),DF-GAN论文上也是说出图30,000张

FID的测法是不是不太统一?在CUB上,真实图片肯定达不到30000,真实图片用的是测试集还是训练集还是全部数据集啊?生成图片您说是用测试集文本,一个文本生成多个图片来出30000张图吗? 在COCO上,这个设定又是什么样的啊?(真实图片用全部训练集?,生成图片只随机选3万张?)

PeleLiu777 commented 2 years ago

现在正在学习并尝试复现DF-GAN的代码。但是我不知道要如何进行FID评分。根据github的代码以及提供的模型(netG_600.pth)进行评分的准备时,会生成2928张图片。但是在根据github的说明使用DM-GAN的FID代码进行评分时,只有55的分数。因此我在担心是否是我操作有误。我获取FID的评分时使用的代码是(python> fid_score.py --gpu 0 --batch-size 24 --path1 bird_val.npz --path2> ../../test/valid/single)

CUB数据集出图要出30,000张,才能复现模型的效果(DM-GAN是这样的),DF-GAN论文上也是说出图30,000张

FID的测法是不是不太统一?在CUB上,真实图片肯定达不到30000,真实图片用的是测试集还是训练集还是全部数据集啊?生成图片您说是用测试集文本,一个文本生成多个图片来出30000张图吗? 在COCO上,这个设定又是什么样的啊?(真实图片用全部训练集?,生成图片只随机选3万张?)

我是统一用DM-GAN给的出图代码测试的,目前看DM-GAN的代码确实是出了3万张图的。出图是用测试集的,数据集中一张图的caption有10个,可以全部出大概有3万(CUB),coco应该也是类似的做法。

tobran commented 2 years ago

我们会在这两天更新代码和模型,包括在COCO,CUB数据集上训练好的模型,另外我们还额外训练了Oxford-flower和MM-CelebA数据集的模型,也会在这周更新。 我们也发现测试FID非常麻烦,并且与训练是割裂的,所以新的代码支持边训练边测试FID并使用tensorboard可视化FID的变化,不需要将图片保存到本地再进行测试,对整体训练时间的影响也很小。 对于FID的测量,新代码提供重新统计的npz文件,在coco上,我们基于测试集进行了统计,在其他数据集上,由于Ground Truth数量不足3w张,甚至没有3k,导致GT远没有生成的图片多,所以我们使用了水平翻转,以及小范围的随机偏移来扩增测试集的图片,确保GT有3w张左右,从而确保图像真实性测量的准确性。我们用来统计npz文件的扩增测试集也会一并开源。 感谢对DF-GAN的关注。

callmexiaowei commented 2 years ago

我们会在这两天更新代码和模型,包括在COCO,CUB数据集上训练好的模型,另外我们还额外训练了Oxford-flower和MM-CelebA数据集的模型,也会在这周更新。 我们也发现测试FID非常麻烦,并且与训练是割裂的,所以新的代码支持边训练边测试FID并使用tensorboard可视化FID的变化,不需要将图片保存到本地再进行测试,对整体训练时间的影响也很小。 对于FID的测量,新代码提供重新统计的npz文件,在coco上,我们基于测试集进行了统计,在其他数据集上,由于Ground Truth数量不足3w张,甚至没有3k,导致GT远没有生成的图片多,所以我们使用了水平翻转,以及小范围的随机偏移来扩增测试集的图片,确保GT有3w张左右,从而确保图像真实性测量的准确性。我们用来统计npz文件的扩增测试集也会一并开源。 感谢对DF-GAN的关注。

您好,您发表的代码是2020年论文对应的代码吗?为什么我训练得到的IS值到不了5.10,FID也到不了14.81,只能达到2020年论文相似的结果

tobran commented 2 years ago

是的,目前是2020年的版本,新版本会在这两天更新

callmexiaowei commented 2 years ago

是的,目前是2020年的版本,新版本会在这两天更新

谢谢作者,感谢分享

Cwj1212 commented 2 years ago

现在正在学习并尝试复现DF-GAN的代码。但是我不知道要如何进行FID评分。根据github的代码以及提供的模型(netG_600.pth)进行评分的准备时,会生成2928张图片。但是在根据github的说明使用DM-GAN的FID代码进行评分时,只有55的分数。因此我在担心是否是我操作有误。我获取FID的评分时使用的代码是(python> fid_score.py --gpu 0 --batch-size 24 --path1 bird_val.npz --path2> ../../test/valid/single)

CUB数据集出图要出30,000张,才能复现模型的效果(DM-GAN是这样的),DF-GAN论文上也是说出图30,000张

FID的测法是不是不太统一?在CUB上,真实图片肯定达不到30000,真实图片用的是测试集还是训练集还是全部数据集啊?生成图片您说是用测试集文本,一个文本生成多个图片来出30000张图吗? 在COCO上,这个设定又是什么样的啊?(真实图片用全部训练集?,生成图片只随机选3万张?)

我是统一用DM-GAN给的出图代码测试的,目前看DM-GAN的代码确实是出了3万张图的。出图是用测试集的,数据集中一张图的caption有10个,可以全部出大概有3万(CUB),coco应该也是类似的做法。

对于计算FID时需要使用的真实图片呢?据我观察,在文本生成图片领域,真实图片用的是测试集图片(CUB测试集图片太小)。然而在图片生成领域,真实图片好像是用的全部训练集图片。在CUB上,这两种测法会有比较大的差异。

tobran commented 2 years ago

现在正在学习并尝试复现DF-GAN的代码。但是我不知道要如何进行FID评分。根据github的代码以及提供的模型(netG_600.pth)进行评分的准备时,会生成2928张图片。但是在根据github的说明使用DM-GAN的FID代码进行评分时,只有55的分数。因此我在担心是否是我操作有误。我获取FID的评分时使用的代码是(python> fid_score.py --gpu 0 --batch-size 24 --path1 bird_val.npz --path2> ../../test/valid/single)

CUB数据集出图要出30,000张,才能复现模型的效果(DM-GAN是这样的),DF-GAN论文上也是说出图30,000张

FID的测法是不是不太统一?在CUB上,真实图片肯定达不到30000,真实图片用的是测试集还是训练集还是全部数据集啊?生成图片您说是用测试集文本,一个文本生成多个图片来出30000张图吗? 在COCO上,这个设定又是什么样的啊?(真实图片用全部训练集?,生成图片只随机选3万张?)

我是统一用DM-GAN给的出图代码测试的,目前看DM-GAN的代码确实是出了3万张图的。出图是用测试集的,数据集中一张图的caption有10个,可以全部出大概有3万(CUB),coco应该也是类似的做法。

对于计算FID时需要使用的真实图片呢?据我观察,在文本生成图片领域,真实图片用的是测试集图片(CUB测试集图片太小)。然而在图片生成领域,真实图片好像是用的全部训练集图片。在CUB上,这两种测法会有比较大的差异。

对于无条件生成来说,网络唯一的输入是随机噪声,训练集和测试集对噪声是不区分的,所以可以在计算FID时,可以使用整个数据集;某些条件生成任务也是一样的,比如class-conditioned generation,测试时的类也是训练时使用的,所以也没有区分;但是文本到图像生成任务的训练集和测试集提供的文本不一样,所以测试FID时,只使用测试集的图片进行测量。 另外根据文本生成图像任务也非常看重泛化能力,具体可见GAN-INT-CLS [1] 对zero-shot属性的强调,我们认同这种观点,所以和前面的工作一样,采用了测试集进行测试。 基于训练集测试的FID会比基于测试集的FID要好,因为忽略了模型的泛化能力,这一现象在CUB和Flower上比较明显,因为它们的训练集和测试集有一些区分,在COCO上,这种现象也有,但比较弱。

[1] Reed S, Akata Z, Yan X, et al. Generative adversarial text to image synthesis[C]//International conference on machine learning. PMLR, 2016: 1060-1069.

Cwj1212 commented 2 years ago

现在正在学习并尝试复现DF-GAN的代码。但是我不知道要如何进行FID评分。根据github的代码以及提供的模型(netG_600.pth)进行评分的准备时,会生成2928张图片。但是在根据github的说明使用DM-GAN的FID代码进行评分时,只有55的分数。因此我在担心是否是我操作有误。我获取FID的评分时使用的代码是(python> fid_score.py --gpu 0 --batch-size 24 --path1 bird_val.npz --path2> ../../test/valid/single)

CUB数据集出图要出30,000张,才能复现模型的效果(DM-GAN是这样的),DF-GAN论文上也是说出图30,000张

FID的测法是不是不太统一?在CUB上,真实图片肯定达不到30000,真实图片用的是测试集还是训练集还是全部数据集啊?生成图片您说是用测试集文本,一个文本生成多个图片来出30000张图吗? 在COCO上,这个设定又是什么样的啊?(真实图片用全部训练集?,生成图片只随机选3万张?)

我是统一用DM-GAN给的出图代码测试的,目前看DM-GAN的代码确实是出了3万张图的。出图是用测试集的,数据集中一张图的caption有10个,可以全部出大概有3万(CUB),coco应该也是类似的做法。

对于计算FID时需要使用的真实图片呢?据我观察,在文本生成图片领域,真实图片用的是测试集图片(CUB测试集图片太小)。然而在图片生成领域,真实图片好像是用的全部训练集图片。在CUB上,这两种测法会有比较大的差异。

对于无条件生成来说,网络唯一的输入是随机噪声,训练集和测试集对噪声是不区分的,所以可以在计算FID时,可以使用整个数据集;某些条件生成任务也是一样的,比如class-conditioned generation,测试时的类也是训练时使用的,所以也没有区分;但是文本到图像生成任务的训练集和测试集提供的文本不一样,所以测试FID时,只使用测试集的图片进行测量。 另外根据文本生成图像任务也非常看重泛化能力,具体可见GAN-INT-CLS [1] 对zero-shot属性的强调,我们认同这种观点,所以和前面的工作一样,采用了测试集进行测试。 基于训练集测试的FID会比基于测试集的FID要好,因为忽略了模型的泛化能力,这一现象在CUB和Flower上比较明显,因为它们的训练集和测试集有一些区分,在COCO上,这种现象也有,但比较弱。

[1] Reed S, Akata Z, Yan X, et al. Generative adversarial text to image synthesis[C]//International conference on machine learning. PMLR, 2016: 1060-1069.

非常感谢您的解答!我对FID的计算问题清楚了很多。