如果我将batchsize用作1,Fid分数脚本是否正确?

时间:2018-10-19 08:34:03

标签: tensorflow

FID分数是否可以在tensorflow > 1.5中正常运行,也就是说,如果我以1的批号运行它? 我正在使用https://github.com/bioinf-jku/TTUR中的FID实施,那里存在一个问题,即它只能以1的批处理大小运行。

我的时间不多了,所以我无法编写用于实现FID的脚本,因此,如果我以1的批处理量运行,任何人都可以确认它是否提供了正确的值。

1 个答案:

答案 0 :(得分:1)

是的,来自TTUR implementation的用于计算FID分数的脚本将适用于任何批量大小值。 但是请注意,为此,它们将所有图像加载到内存中。

针对FID分数计算的均值和协方差矩阵是在所有图像的激活过程中定义的。但是要获得激活值,我们需要加载初始模型,并考虑批处理大小定义的图像数量来获得这些激活。

这些激活是通过函数get_activationslink)计算和累积的。

def get_activations(images, sess, batch_size=50, verbose=False):
   """Calculates the activations of the pool_3 layer for all images.
   ...

,用于通过功能calculate_activation_statisticslink)计算激活统计信息(均值和协方差)。