Heim > Artikel > Backend-Entwicklung > So implementieren Sie ein zweischichtiges neuronales Netzwerk und ein Perzeptronmodell in Python
In diesem Artikel erfahren Sie, wie Sie mit Python ein zweischichtiges neuronales Netzwerk und ein Perzeptronmodell implementieren. Der spezifische Inhalt und die Beispiele sind wie folgt als Referenz
Python 3.4 Weil Numpy verwendet wirdHier implementieren wir zunächst ein Perzeptronmodell, um die folgende Entsprechung zu erreichen[[0,0,1], ——- 0 [0,1,1], ——- 1 [1,0,1], ——- 0 [1,1,1]] ——- 1Wie aus den obigen Daten ersichtlich ist: die Der Eingang besteht aus drei Kanälen, der Ausgang ist einkanalig.
hier wir verwenden die Sigmoidfunktion f(x)=1/(1+exp(-x))
L0=W*X; z=f(L0); error=y-z; delta =error * f'(L0) * X; W=W+delta;Der Python-Code lautet wie folgt:
import numpy as np #sigmoid function def nonlin(x, deriv = False): if(deriv==True): return x*(1-x) return 1/(1+np.exp(-x)) # input dataset X=np.array([[0,0,1], [0,1,1], [1,0,1], [1,1,1]]) # output dataset y=np.array([[0,1,0,1]]).T #seed( ) 用于指定随机数生成时所用算法开始的整数值, #如果使用相同的seed( )值,则每次生成的随即数都相同, #如果不设置这个值,则系统根据时间来自己选择这个值, #此时每次生成的随机数因时间差异而不同。 np.random.seed(1) # init weight value with mean 0 syn0 = 2*np.random.random((3,1))-1 for iter in range(1000): # forward propagation L0=X L1=nonlin(np.dot(L0,syn0)) # error L1_error=y-L1 L1_delta = L1_error*nonlin(L1,True) # updata weight syn0+=np.dot(L0.T,L1_delta) print("Output After Training:") print(L1)
import numpy as np def nonlin(x, deriv = False): if(deriv == True): return x*(1-x) else: return 1/(1+np.exp(-x)) #input dataset X = np.array([[0,0,1], [0,1,1], [1,0,1], [1,1,1]]) #output dataset y = np.array([[0,1,1,0]]).T #the first-hidden layer weight value syn0 = 2*np.random.random((3,4)) - 1 #the hidden-output layer weight value syn1 = 2*np.random.random((4,1)) - 1 for j in range(60000): l0 = X #the first layer,and the input layer l1 = nonlin(np.dot(l0,syn0)) #the second layer,and the hidden layer l2 = nonlin(np.dot(l1,syn1)) #the third layer,and the output layer l2_error = y-l2 #the hidden-output layer error if(j%10000) == 0: print "Error:"+str(np.mean(l2_error)) l2_delta = l2_error*nonlin(l2,deriv = True) l1_error = l2_delta.dot(syn1.T) #the first-hidden layer error l1_delta = l1_error*nonlin(l1,deriv = True) syn1 += l1.T.dot(l2_delta) syn0 += l0.T.dot(l1_delta) print "outout after Training:" print l2
Detailliertes Codebeispiel, wie PHP die Stack-Datenstruktur und den Bracket-Matching-Algorithmus implementiert
Am beliebtesten Code in PHP Einfacher String-Matching-Algorithmus, PHP-Matching-Algorithmus_PHP-Tutorial
Das einfachste String-Matching-Algorithmus-Tutorial in PHP
Das obige ist der detaillierte Inhalt vonSo implementieren Sie ein zweischichtiges neuronales Netzwerk und ein Perzeptronmodell in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!