在张量流中乘以分布

时间:2018-07-04 17:39:41

标签: tensorflow tensorflow-probability

我是Tensorflow的新手,我想将两个分布相乘以获得后验密度。我该如何使用Tensorflow?

例如:

likelihood = tf.contrib.distributions.MultivariateNormalDiag(loc = [0., 0., 0.], scale_diag= [1., 1., 1.])
prior = tf.contrib.distributions.MultivariateNormalDiag(loc = [0., 0., 0.], scale_diag= [1., 1., 1.])

我尝试使用tf.multiply(likelihood,prior),但它给我数据类型错误

  

无法将类型的对象转换为Tensor。内容:tf.distributions.MultivariateNormalDiag(“ MultivariateNormalDiag”,batch_shape =(),event_shape =(3,),dtype = float32)。考虑将元素强制转换为受支持的类型。

有人可以帮我吗?

非常感谢帮助。 谢谢

1 个答案:

答案 0 :(得分:1)

tf.distribution是一个对象,因此不能用作张量。

您可以将.prob.log_prob)方法相乘(或求和)。