def _gaussian_pdf(self, x, mixings, sigma, mean):
""" Wrapper for Gaussian PDF """
variance = tf.square(sigma)
output_size = tf.cast(tf.shape(mean)[1], tf.float32)
# Left: 1/sqrt(pi * 2 * variance) [N, K]
left = tf.reciprocal(tf.pow(2*np.pi, output_size/2.0) *
tf.pow(sigma, output_size))
# Exponent: e^[-(x-mu)^2/(2var)]. [N, K]
right = tf.exp(-tf.divide(tf.square(x - mean), 2 * variance))
return tf.multiply(left, right)
评论列表
文章目录