что эквивалентно тензорному потоку для функции вероятности pytorch: torch.bernoulli? - PullRequest
0 голосов
/ 31 октября 2018

В Pytorch вы можете сделать следующее:

x = torch.bernoulli(my_data)

Есть ли подобная функциональность в tenorflow? Может ли ввод быть двумерным тензором, например (партия, лен)?

Я пытался использовать tenorflow.contrib.distributions. Бернулли:

import numpy as np
tmp_x1 = np.random.rand(20,5) 
new_data_2 = tf.convert_to_tensor(tmp_x1)
from tensorflow.contrib.distributions import  Bernoulli
tmp2_x1 = Bernoulli(probs=new_data_2)

получил ошибку:

return math_ops.log(probs) - math_ops.log1p(-1. * probs), probs
TypeError: unsupported operand type(s) for *: 'float' and 'Tensor'

1 Ответ

0 голосов
/ 31 октября 2018

Кажется tf.distributions.Bernoulli делает то, что вам нужно. На входе может быть N-D тензор, который включает в себя 2D-тензор.

РЕДАКТИРОВАТЬ: пример использования

После вашего комментария я попробовал следующее, что сработало для меня (используя tensflow 1.11):

import numpy as np
import tensorflow
import tensorflow as tf
from tensorflow.distributions import  Bernoulli

tmp_x1 = np.random.rand(20,5)
new_data_2 = tf.convert_to_tensor(tmp_x1)
tmp2_x1 = Bernoulli(probs=new_data_2)
sess = tf.Session()
print sess.run(tmp2_x1.sample())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...