Кратные распределения в тензорном потоке - PullRequest
0 голосов
/ 04 июля 2018

Я новичок в Tensorflow и хочу умножить два распределения, чтобы получить апостериорную плотность. Как я могу сделать это с помощью tenorflow?

Например:

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 голосов
/ 15 июля 2018

A tf.distribution является объектом и, следовательно, не может использоваться в качестве Тензорного.

Вместо этого можно умножить (или суммировать) методы .prob (.log_prob).

...