2017-04-08 13 views
0

私はPythonを学んでいますが、ニューラルネット用に複数のアレイを作成することはできません。私が得た例は、1個のニューロンアレイの例を進化させる傾向があり、以下、それは多くのおかげですので、私は、ニューラルネットの配列の群れを作成しようとしているadvance.Imでnumpyの中でそれを拡張する方法1つのニューラルネットである、独自の入力に隠れ層と出力層8)複数のニューラルネットアレイを作成する

import numpy as np 

epochs = 10000   # Number of iterations 
inputLayerSize, hiddenLayerSize, outputLayerSize = 2,2,1 


X = np.array([[0,0], [0,1], [1,0], [1,1]]) 
Y = np.array([ [0], [1], [1], [0]]) 

def sigmoid (x): return 1/(1 + np.exp(-x))  # activation function 
def sigmoid_(x): return x * (1 - x)    # derivative of sigmoid 
               # weights on layer inputs 
Wh = np.random.uniform(size=(inputLayerSize, hiddenLayerSize)) 
Wz = np.random.uniform(size=(hiddenLayerSize,outputLayerSize)) 


for i in range(epochs): 

    H = sigmoid(np.dot(X, Wh))     # hidden layer results 
    Z = sigmoid(np.dot(H, Wz))     # output layer results 
    E = Y - Z         # how much we missed #(error) 
    dZ = E * sigmoid_(Z)      # delta Z 
    dH = dZ.dot(Wz.T) * sigmoid_(H)    # delta H 
    Wz += H.T.dot(dZ)       # update output layer #weights 
    Wh += X.T.dot(dH)       # update hidden layer #weights 

print("------")    # what have we learnt? 
#Walk-through 
print(Z) 

答えて

0

なぜドンと各関数内にネットワーク全体を記述し、変数を引数として渡して、必要な数のネットワークを持つことができます。

あなたのコードに誤りがあります:

def sigmoid (x): return 1/(1 + np.exp(-x))  # activation function 
def sigmoid_(x): return sigmoid(x) * (1 - sigmoid(x)) # derivative of sigmoid 
              # weights on layer inputs 
+0

正しく間違い何Babuの報道に思えますか? 8)第2に、より大きい配列を作成しようとするとe = y-zを計算しません8)psこれまでに助けてくれてありがとう –

関連する問題