随机比特数组由给定的概率与numpy

时间:2013-04-24 10:16:43

标签: numpy neural-network stochastic-process

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

两个问题:

  1. 我不确定这是否意味着我需要使用sigmoid的结果来确定输出的概率,或者如果概率只是神经元输入,并且sigmoid函数现在是多余的。
  2. 如何有效地使用numpy?我知道如何生成随机位,但是如何在大数组内给定概率的情况下呢? (如果重要的话,我当前的sigmoid函数是tanh)

1 个答案:

答案 0 :(得分:0)

  1. 仍然需要sigmoid函数,因为反向传播用于计算sigmoid函数的导数,而不是神经元是否被激发。
  2. 像以前一样计算激活后,我现在运行结果数组x:

    return numpy.random.ranf(x.shape) < x

    我的时间是3.03323280772e-05

    另请注意,numpy将布尔值视为1和0,因此无需将结果传回int / float)。因为这现在是0和1,所以我不得不改变我的代码 - 在我使用-1和1作为目标值和输入之前。