gpt4 book ai didi

python-3.x - 在 tensorflow 中获取随机 Gamma 分布,如 numpy.random.gamma

转载 作者:行者123 更新时间:2023-12-04 13:30:48 30 4
gpt4 key购买 nike

嗨,我是 tensorflow 的新手,我正在尝试在 tensorflow 中生成随机 Gamma 分布,就像 numpy.random.gamma

我的 numpy 代码是:-

self._lambda = 1 * np.random.gamma(100., 1. / 100, (self.n_topic, self.n_voca))

哪里n_topic=240n_voca=198

我的 tensorflow 代码是:-

 self._tf_lambda = tf.random_gamma((self.n_topic, self.n_voca),1, dtype=tf.float32, seed=0, name='_tf_lambda')

这是一个正确的实现吗?我相信我没能理解 tf.random_gamma 的参数变成了self._lambda <> self.tf_lambda .

最佳答案

您在分布中设置了不同的形状参数,因此预计它们会有所不同。

需要注意的一件事是 numpy 有一个“scale”参数,而 TF 有一个“inverse scale”参数。因此必须反转才能获得相同的分布。

具有匹配分布的 Jupyter notebook 示例:

%matplotlib inline
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

size = (50000,)
shape_parameter = 1.5
scale_parameter = 0.5
bins = np.linspace(-1, 5, 30)

np_res = np.random.gamma(shape=shape_parameter, scale=scale_parameter, size=size)

# Note the 1/scale_parameter here

tf_op = tf.random_gamma(shape=size, alpha=shape_parameter, beta=1/scale_parameter)
with tf.Session() as sess:
tf_res = sess.run(tf_op)

plt.hist(tf_res, bins=bins, alpha=0.5);
plt.hist(np_res, bins=bins, alpha=0.5);

Histogram plot of results

关于python-3.x - 在 tensorflow 中获取随机 Gamma 分布,如 numpy.random.gamma,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42342022/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com