Я пытаюсь заставить работать следующий код.Он продолжает выполнять испытания Бернулли до тех пор, пока одно из них не будет успешным.
import tensorflow as tf
import tensorflow_probability as tfp
tfd = tfp.distributions
def geometric(p):
def cond(_):
return tf.equal(1, tfd.Bernoulli(p).sample())
def body(t):
return tf.add(t, 1)
return tf.while_loop(
cond, # name is automatically generated
body,
[tf.constant(0)]
)
with tf.Session() as sess:
acc = sess.run(geometric(0.001))
print(acc)
Приведенный выше код выводит значения от 0
до 3
, что не имеет смысла.Я ожидаю, что это напечатает что-то сотнями.Кроме того, когда я изменяю вызов geometric
на geometric(0.000001)
, я все равно получаю тот же результат.
Кто-нибудь может указать, что не так с моим кодом выше?