Использование seed для выборки в тензор-вероятности - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь использовать tensorflow-probability и начал с чего-то действительно простого:

import tensorflow as tf
import tensorflow_probability as tfp

tf.enable_eager_execution()

tfd = tfp.distributions
poiss = tfd.Poisson(0.8)

poiss.sample(2, seed=1)
#> Out: <tf.Tensor: id=3569, shape=(2,), dtype=float32, numpy=array([0., 0.], dtype=float32)>

poiss.sample(2, seed=1)
#> Out: <tf.Tensor: id=3695, shape=(2,), dtype=float32, numpy=array([1., 0.], dtype=float32)>

poiss.sample(2, seed=1)
#> Out: <tf.Tensor: id=3824, shape=(2,), dtype=float32, numpy=array([2., 2.], dtype=float32)>

poiss.sample(2, seed=1)
#> Out: <tf.Tensor: id=3956, shape=(2,), dtype=float32, numpy=array([0., 1.], dtype=float32)>

Я думал, что получу те же результаты при повторном использовании того же семени, но почему-то это не так.

Я также пытался без выполнения eager, но результаты все равно не воспроизводились.Та же самая история, если я добавлю что-то вроде tf.set_random_seed(12).

Я полагаю, что я упускаю что-то простое?

Для тех, кто заинтересован, я запускаю Python 3.5.2 в Ubuntu 16.04 с

тензорный поток-вероятность == 0,5,0
тензорный поток == 1,12,0

1 Ответ

0 голосов
/ 11 февраля 2019

Для детерминированного вывода в режиме графика вам необходимо установить как случайное начальное число графика (tf.set_random_seed), так и случайное начальное число операции (seed= в вашем вызове выборки).

Работа случайных выборокв TFv2 все еще разобрано .На данный момент, насколько я понимаю, вы можете вызывать tf.set_random_seed до каждый вызов сэмплера, и передать сэмплер seed=, если вы хотите детерминированный вывод в нетерпении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...