Tensorflow 计算张量流中变换的多元正态的PDF?
我试图评估Tensorflow中转换的多元分布的对数pdf。虽然它将正确采样,但它会为一个样本生成两个单独的对数概率。一个例子是Tensorflow 计算张量流中变换的多元正态的PDF?,tensorflow,Tensorflow,我试图评估Tensorflow中转换的多元分布的对数pdf。虽然它将正确采样,但它会为一个样本生成两个单独的对数概率。一个例子是 [[ 1.05516054e-03, 1.50635891e+01]] 这将返回一个 [[ 2.64074564, -4.21384382]] 而不是单对数概率 为了更清楚地说明这一点,我附上了一个我希望可以复制的例子 from tensorflow.contrib.distributions.python.ops import bijectors as
[[ 1.05516054e-03, 1.50635891e+01]]
这将返回一个
[[ 2.64074564, -4.21384382]]
而不是单对数概率
为了更清楚地说明这一点,我附上了一个我希望可以复制的例子
from tensorflow.contrib.distributions.python.ops import bijectors as bijector
ds = tf.contrib.distributions
mean = tf.constant([-5., 15.])
chol = tf.constant([[0.77909118, 0.],
[-0.02230092, 0.8150183]])
mvn_sftpls = ds.TransformedDistribution(distribution=ds.MultivariateNormalTriL(
loc=mean, scale_tril=chol), bijector=bijector.Softplus())
sample = mvn_sftpls.sample(1)
output = mvn_sftpls.log_prob(sample)
with tf.Session() as sess:
print(sess.run(output))
答案(对于任何好奇的人来说)是将softplus双射体中的事件ndims设置为多变量范数中适当的维数。就我而言:
bijector=bijector.Softplus(event_ndims = 1)
答案(对于任何好奇的人来说)是将softplus双射体中的事件ndims设置为多变量范数中适当的维数。就我而言:
bijector=bijector.Softplus(event_ndims = 1)
对于后验性(以及未来),在Tensorflow的夜间版本(我猜是下一个版本)中,这应该是自动推断的,因此您不需要在Tensorflow的夜间版本(我猜是下一个版本)中指定event_ndims=1。对于后验性(以及未来),这应该是自动推断的,因此不需要指定event\u ndims=1