3层神经网络doesen正确学习

时间:2018-05-10 18:39:26

标签: neural-network

所以,我试图在python中实现3层神经网络,但是我不是最聪明的人,所以任何超过2层的东西对我来说都有点困难。这个问题的一个问题是它被卡在了.5并没有得知我没有真正的线索它出错了。感谢任何有耐心向我解释错误的人。 (我希望代码有意义)

import numpy as np

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

def reduce(x):
    return x*(1-x)

l0=[np.array([1,1,0,0]),
np.array([1,0,1,0]),
np.array([1,1,1,0]),
np.array([0,1,0,1]),
np.array([0,0,1,0]),
]

output=[0,1,1,0,1]

syn0=np.random.random((4,4))
syn1=np.random.random((4,1))

for justanumber in range(1000):
    for i in range(len(l0)):

        l1=sigmoid(np.dot(l0[i],syn0))
        l2=sigmoid(np.dot(l1,syn1))

        l2_err=output[i]-l2
        l2_delta=reduce(l2_err)

        l1_err=syn1*l2_delta
        l1_delta=reduce(l1_err)

        syn1=syn1.T
        syn1+=l0[i].T*l2_delta
        syn1=syn1.T

        syn0=syn0.T
        syn0+=l0[i].T*l1_delta
        syn0=syn0.T
        print l2

PS。我知道它可能是一块垃圾作为剧本,但这就是我寻求帮助的原因

0 个答案:

没有答案