学习GAN模型量化评价,先从掌握FID开始吧( 七 )

|| mu_1-mu_2 ||^2 代表两个平均向量差的平方和。Tr 指的是被称为「迹」的线性代数运算(即方阵主对角线上的元素之和)。

sqrt 是方阵的平方根,由两个协方差矩阵之间的乘积给出。

矩阵的平方根通常也被写作 M^(1/2),即矩阵的 1/2 次方。此运算可能会失败,由于该运算是使用数值方法求解的,是否成功取决于矩阵中的值。通常,所得矩阵中的一些元素可能是虚数,它们通常可以被检测出来并删除。

如何用 NumPy 实现 Frechet Inception 距离?

使用 NumPy 数组在 Python 中实现 FID 分数的计算非常简单。

首先,让我们定义一个函数,它将为真实图像和生成图像获得一组激活函数值,并返回 FID 分数。

下面列出的「calculate_fid()」函数实现了该过程。

通过该函数,我们几乎直接实现了 FID 分数的计算。值得注意的是,TensorFlow 中的官方实现计算元素的顺序稍有不同(可能是为了提高效率),并在加入了矩阵平方根附近的额外检查,以处理可能的数值不稳定性。

推荐阅读