小编Whi*_*ice的帖子

伯努利随机数发生器

我无法理解 numpy 中使用的伯努利随机数生成器是如何计算的,并希望对此进行一些解释。例如:

np.random.binomial(size=3, n=1, p= 0.5)

Results:
[1 0 0]
Run Code Online (Sandbox Code Playgroud)

n = 路径数

p = 发生概率

大小 = 实验次数

如何确定“0”或“1”的生成数字/结果?

==================================更新================ ==================

我创建了一个受限玻尔兹曼机,尽管在多个代码执行中是“随机”的,但它始终呈现相同的结果。随机种子使用 np.random.seed(10)

import numpy as np

np.random.seed(10)

def sigmoid(u):
    return 1/(1+np.exp(-u))

def gibbs_vhv(W, hbias, vbias, x):
    f_s = sigmoid(np.dot(x, W) + hbias)
    h_sample = np.random.binomial(size=f_s.shape, n=1, p=f_s)

    f_u = sigmoid(np.dot(h_sample, W.transpose())+vbias)
    v_sample = np.random.binomial(size=f_u.shape, n=1, p=f_u)
    return [f_s, h_sample, f_u, v_sample]

def reconstruction_error(f_u, x):
    cross_entropy = -np.mean(
        np.sum(
            x * np.log(sigmoid(f_u)) + (1 - x) * np.log(1 …
Run Code Online (Sandbox Code Playgroud)

statistics numpy

10
推荐指数
1
解决办法
3万
查看次数

标签 统计

numpy ×1

statistics ×1