# Inception score calculation

I am trying to compute the Inception core for my GAN network.
but i have observed something very interesting. Why are we using only `X` for the calculation i taught KL divergence was suppose to use two variables main distribution `P(x)` and predicted Model `Q(x)` .

``````def inception_score(X):
kl = X * ((X + eps).log() - (X.mean(0) + eps).log().expand_as(X))
score = np.exp(kl.sum(1).mean())
return score
``````

but it looks like the KL divergence is between `X` and its mean `X.mean(0)` i.e if `X` is the the generated image, then what’s actually going on?