首页 > 解决方案 > numpy 数组是如何做到这一点的,它是否正确?

问题描述

我正在查看用 numpy 用 python 编写的神经网络的一些代码,我注意到当通过激活函数传递神经元的结果时:

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

而不是一个一个地传递权重,那个人用 np.array 作为参数调用了这个函数!

像这样:

import numpy as np

def sigmoid(x):
    return 1.0/(1.0 + np.exp(-x))

x = np.zeros((2,2))

print "Before\n",x
x = sigmoid(x)
print "After\n",x

令我惊讶的是,这奏效了。我总是为每个权重单独调用一个循环激活函数,因为该函数将单个数字作为输入。

输出:

Before
[[ 0.  0.]
 [ 0.  0.]]
After
[[ 0.5  0.5]
 [ 0.5  0.5]]

我还尝试了其他一些操作,它们似乎工作正常。

这个对吗'?在某些情况下这不起作用还是 numpy 数组旨在做到这一点?我真正想知道的是,我可以使用它还是做我以前做的更好?

标签: pythonnumpyneural-network

解决方案


推荐阅读