0

我是 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),但它给了我数据类型错误

无法将类型对象转换为张量。内容:tf.distributions.MultivariateNormalDiag("MultivariateNormalDiag", batch_shape=(), event_shape=(3,), dtype=float32)。考虑将元素转换为支持的类型。

谁能帮我解决这个问题。

非常感谢帮助。谢谢

4

1 回答 1

1

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

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

于 2018-07-15T19:41:39.333 回答