lundi 11 février 2019

Using seed to sample in tensorflow-probability

I am trying to use tensorflow-probability and started off with something really simple:

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)>

I was thinking I would get the same results when re-using the same seed, but somehow that's not true.

I also tried without eager execution, but the results still weren't reproducible. Same story if I add something like tf.set_random_seed(12).

I suppose there is something basic I am missing?

For those interested, I am running Python 3.5.2 on Ubuntu 16.04 with

tensorflow-probability==0.5.0
tensorflow==1.12.0




Aucun commentaire:

Enregistrer un commentaire