张量流:tf.random.normal和tf.distributions.normal之间的差异

时间:2019-06-02 23:17:40

标签: tensorflow tensorflow-probability

tf.random.normal和tf.distributions.Normal有什么区别?还是tf.distributions.Multinomial和tf.random.multinomial之间的区别或类似的东西?

tf.distributions.Normal是否用作tf.random.normal的后端?

谢谢。

1 个答案:

答案 0 :(得分:1)

我最近查看了tf probability的新地方tf distributions。这是我的理解:

它们不一样。 tf.distributions.Normal将为您提供一个分布对象,您可以从中进行采样(这与评估tf.random.normal函数调用返回的张量相同的均值和位置值相同)。但是,通过分布,您还可以评估提供的样本的概率以及访问分布的所有方面。

例如,您可以执行以下操作:

>>> import tensorflow as tf
>>> dist = tf.distributions.Normal(loc=0., scale=1.)
>>> dist.log_prob(tf.random.normal(shape=(3,3)))
<tf.Tensor: id=58, shape=(3, 3), dtype=float32, numpy=
array([[-0.9486696 , -0.95645994, -1.1610177 ],
       [-1.244764  , -1.416851  , -1.1236244 ],
       [-0.9292835 , -0.98901427, -0.9705758 ]], dtype=float32)>