Numpy 给定概率的随机位数组

Numpy 给定概率的随机位数组,numpy,neural-network,stochastic-process,Numpy,Neural Network,Stochastic Process,我有一个确定性神经网络,我想把它变成随机的 两个问题: 我不确定这是否意味着我需要使用sigmoid的结果来确定输出的概率,或者概率仅仅是神经元的输入,sigmoid函数现在是多余的 如何使用numpy有效地做到这一点?我知道如何生成随机位,但在一个大数组中,给定概率的情况下,如何生成随机位呢?(我目前的乙状结肠功能是tanh,如果有关系的话) sigmoid函数仍然是必需的,因为反向传播工作是计算sigmoid函数的导数,而不是计算神经元是否被激发 在像以前一样计算激活之后,我现在通过以下方式

我有一个确定性神经网络,我想把它变成随机的

两个问题:

  • 我不确定这是否意味着我需要使用sigmoid的结果来确定输出的概率,或者概率仅仅是神经元的输入,sigmoid函数现在是多余的
  • 如何使用numpy有效地做到这一点?我知道如何生成随机位,但在一个大数组中,给定概率的情况下,如何生成随机位呢?(我目前的乙状结肠功能是tanh,如果有关系的话)
  • sigmoid函数仍然是必需的,因为反向传播工作是计算sigmoid函数的导数,而不是计算神经元是否被激发
  • 在像以前一样计算激活之后,我现在通过以下方式运行结果数组x:

    返回numpy.random.ranf(x.shape)

    我的时间是
    3.03323280772e-05

    还要注意,numpy将布尔值视为1和0,因此无需将结果传输回int/float)。因为现在是0和1,所以在使用目标值和输入的-1和1之前,我必须稍微更改代码


  • 或者
    return(numpy.random.ranf(x.shape)>x)*2-1
    @askewchan我认为它是。最初的错误是我的:)是的,假设
    x
    是一个标准化为
    1
    的概率数组。我的观点很简单,将布尔值更改为
    {-1,1}