Ich bin ein Anfänger in maschinelles Lernen und versuchen neuronale Netz auf eigene Faust zu bauen, indem Tutorial in dieser Website werden folgende http://iamtrask.github.io/2015/07/12/basic-python-network/Neural Network gleichen Fehler zurückgegeben
Im Teil 3 des Tutorials gibt es eine Eingangsschicht eine Ausgabeschicht und eine versteckte Ebene.
Wenn ich jedoch versuchte, den Code auszuführen, wurde derselbe Fehler ausgegeben. Der Fehler wurde also nicht wie erwartet kleiner. Hier ist der Code:
import numpy as np;
def nonlin(x,deriv=False):
if (deriv==True):
return x * 1-x
return 1/(1+np.exp(-x))
x = np.array([ [0,0,1],
[0,1,1],
[1,0,1],
[1,1,1] ])
y = np.array([[0],[1],[1],[0]])
np.random.seed(1)
#randomly initialize our weights with mean 0
syn0 = 2*np.random.random((3,4)) - 1
syn1 = 2*np.random.random((4,1)) - 1
for j in range (60000):
#feed forward through layers 0, 1, and 2
l0 = x
l1 = nonlin(np.dot(l0,syn0))
l2 = nonlin(np.dot(l1,syn1))
# how much did we miss the target value?
l2_error = y - l2
if (j%10000) == 0:
print ("Error:" + str (np.mean(np.abs(l2_error))))
#in what direction is the target value?
# were we really sure? if so, dont change too much.
l2_delta = l2_error*nonlin(l2,deriv=True)
# how much did each L1 value contribute to the l2 error
#(according to the weights)?
l1_error = l2_delta.dot(syn1.T)
# in what direction is the target L1?
# were we really sure? if so dont change too much.
l1_delta = l1_error * nonlin(l1,deriv=True)
syn1 += l1.T.dot(l2_delta)
syn0 += l0.T.dot(l1_delta)
Vielen Dank für Ihre Rückmeldung
P. S: Ich bin mit Python 3.5.2, Windows 7
Können Sie Ihre Ausgabe einfügen und auch 'nonlin()' und 'x' enthalten. Ich habe deinen Code ausgeführt und es funktioniert, die Fehler sinken auch. – jonnybazookatone
Fehler: ,496410031903 Fehler: ,496410031903 Fehler: ,496410031903 Fehler: ,496410031903 Fehler: ,496410031903 Fehler: ,496410031903 dies ist die Ausgabe, die ich erhalten, wie sie für die nonlin() und x, es definiert ist, nachdem ich importieren numpy als np. –