• 主页
  • Julia中的简单神经网络

Julia中的简单神经网络

我试图将代码从python上的这个tutorial重写到julia,并得到了意想不到的结果-- [0.5; 0.5; 0.5; 0.5],我一遍又一遍地查看这行代码,但没有看到什么不同。

Python代码:

from numpy import exp, array, random, dot
training_set_inputs = array([[0, 0, 1], [1, 1, 1], [1, 0, 1], [0, 1, 1]])
training_set_outputs = array([[0, 1, 1, 0]]).T
random.seed(1)
synaptic_weights = 2 * random.random((3, 1)) - 1
for iteration in xrange(10000):
    output = 1 / (1 + exp(-(dot(training_set_inputs, synaptic_weights))))
    synaptic_weights += dot(training_set_inputs.T, (training_set_outputs - output) * output * (1 - output))
print 1 / (1 + exp(-(dot(array([1, 0, 0]), synaptic_weights))))

我的julia代码:

function activate(x)
    return 1./(1+exp(-x))
end

function g_activate(x)
    return x.*(1-x)
end

function test(iter)

Input = [0 0 1;0 1 1;1 0 1;1 1 1]
TInput = transpose(Input)
Test = [0, 1, 1, 0]
Weights = 2 * rand(3, 1) - 1

for i in 1:iter

output = activate(Input*Weights)
error = Test - output
delta = error.*g_activate(output)
Weights +=  TInput*delta

end

println(activate(Input*Weights))
end

我做错了什么?在Julia中如何做得更地道?

转载请注明出处:http://www.jubohx.com/article/20230428/1265582.html