066、代码实战十六:计算扩散模型的FID与IS分数
昨天深夜调试模型,生成了一堆看起来挺不错的图像,但老板问“到底比上周的版本好多少?”——我卡壳了。视觉评估太主观,我们需要数字说话。今天就来搞定两个关键指标:FID(Frechet Inception Distance)和IS(Inception Score)。这两个分数是扩散模型评估的“标准尺”,但实现时坑不少。
为什么需要量化评估?
扩散模型训练动辄几十万步,不能每次都靠人眼判断生成质量。FID衡量真实图像与生成图像的分布距离,数值越低越好;IS评估生成图像的多样性和清晰度,数值越高越好。但要注意,这两个指标都依赖Inception V3网络提取特征,本质上是在用ImageNet的视觉先验评估你的模型。
安装依赖的坑
别直接pip install pytorch-fid就完事,版本冲突能折腾半天。我的环境配置是这样的:
# 建议创建新环境专门做评估# torch和torchvision版本必须匹配,否则特征提取会报维度错误# 我用的版本组合:# torch==1.12.1+cu113# torchvision==0.13.1+cu113