我是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)。考虑将元素强制转换为受支持的类型。
有人可以帮我吗?
非常感谢帮助。 谢谢
答案 0 :(得分:1)
tf.distribution
是一个对象,因此不能用作张量。
您可以将.prob
(.log_prob
)方法相乘(或求和)。