Я просматривал некоторый код нейронной сети, написанный на python, с numpy, и заметил, что при передаче результатов нейронов через функцию активации:
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
К моему удивлению, это сработало.Я всегда вызывал функцию активации с циклом для каждого веса индивидуально, так как функция принимает одно число в качестве входных данных.
output:
Before
[[ 0. 0.]
[ 0. 0.]]
After
[[ 0.5 0.5]
[ 0.5 0.5]]
Я также пробовал некоторые другие операции, и оникажется, работает нормально.
Это 'правильно'?Есть ли случаи, когда это не сработало или для этого созданы массивы?Что я действительно хочу знать, так это то, могу ли я использовать это или мне лучше делать то, что я делал раньше?