美文网首页
inception score的理解

inception score的理解

作者: 猴子喜 | 来源:发表于2018-10-23 15:23 被阅读0次

    Inception score

    作用

    评估GAN模型的指标,评价生成的图片集合的好坏

    特点

    1. 单一样本的独特性:哪个样本属于哪一类的确定性很大(p(y|x)的某一个值很大其他值很小,即熵很小)

    最小化
    -p(y|x)log p(y|x)

    1. 多样本间的差异性:结果有很多类 (p(y)的各个值相差不大,即熵很大)

    最大化
    -p(y)logp(y)

    综合起来就是

    • 展开



      因为实际当中,我们无法计算积分,就采用蒙特卡罗的方法,将积分计算换成求和:


    实际计算中,我们一般把所有数据分成几份,我们对每一份数据进行上面的计算,然后计算这几份数据的平均值和方差。

    代码

    (官方)https://github.com/openai/improved-gan/blob/master/inception_score/model.py

    def preds2score(preds,splits):  # 公式
        '''
        :param preds: 总数据
        :param splits: 数据被分成的份数
        :return: inception score
        '''
        scores = []
        for i in range(splits):
            part = preds[(i * preds.shape[0] // splits):((i + 1) * preds.shape[0] // splits), :]
            kl = part * (np.log(part) - np.log(np.expand_dims(np.mean(part, 0), 0)))
            kl = np.mean(np.sum(kl, 1))
            scores.append(np.exp(kl))
        return np.mean(scores), np.std(scores)
    

    相关文章

      网友评论

          本文标题:inception score的理解

          本文链接:https://www.haomeiwen.com/subject/xfnozftx.html