2016-08-09 2 views
0

essayant de transmettre propager des données à travers un réseau de neuronesfonction sigmoïde réseau de neurones « prend exactement 1 argument (2 donné) »

import numpy as np 
import matplotlib.pyplot as plt 

class Neural_Network(object): 
def __init__(self):   
    #Define Hyperparameters 
    self.inputLayerSize = 2 
    self.outputLayerSize = 1 
    self.hiddenLayerSize = 3 

    #Weights (parameters) 
    self.W1 = np.random.randn(self.inputLayerSize, self.hiddenLayerSize) 
    self.W2 = np.random.randn(self.hiddenLayerSize, self.outputLayerSize) 

def forward(self, X): 
    #Propagate inputs though network 
    self.z2 = np.dot(X, self.W1) 
    self.a2 = self.sigmoid(self.z2) 
    self.z3 = np.dot(self.a2, self.W2) 
    yHat = self.sigmoid(self.z3) 
    return yHat 

def sigmoid(z): 
    # apply sigmoid activation function 
    return 1/(1+np.exp(-z)) 

Quand je lance:
NN = Neural_Network() yHat = NN.forward(X)

Pourquoi puis-je obtenir la erreur: TypeError: sigmoid() takes exactly 1 argument (2 given)

quand je lance: print NN.W1

i get: [[ 1.034435 -0.19260378 -2.73767483] [-0.66502157 0.86653985 -1.22692781]]

(peut-être cela est un problème avec la fonction de point numpy retour trop de dimensions?)

* Note: je cours dans le carnet de jupyter et %pylab inline

+0

Vous étudierez ANNs à travers les didacticiels de Stephen Welch (_Welchlabs_)? Je pense que j'ai déjà vu ce code là. – ForceBru

+0

Oui, pur oubli de ma part si – mleafer

+0

continuer, ces tutoriels sont absolument génial! J'ai moi-même beaucoup appris d'eux. Vous pouvez également consulter [ce livre en ligne sur les ANNs] (http://neuralnetworksanddeeplearning.com), il a de nombreux exemples et des explications très propres. – ForceBru

Répondre

1

Il vous manque un self argument pour la fonction sigmoid. def sigmoid(z): ->def sigmoid(self, z):. Ce self.sigmoid(self.z3) appelle effectivement sigmoid avec self comme premier paramètre et self.z3 comme deuxième.

(Ce ou votre empreinte de code est hors qui ne semble pas probable car le code est exécuté)

+0

omg, merci beaucoup! – mleafer