from sys import argv from numpy import * from numpy.random import * tasa_de_aprendizaje = 0.03 capa = list() class neu(object): def Entrada(self,n): entrada = uniform(low=-1, high=1, size=(1,n)) entrada = append(entrada, -1.0) return entrada def W(self, n): return uniform(low=-1, high=1, size=(1,n+1)) def Condicion(self, n, w): return uniform(low=-1, high=1, size=(1,n+1)) def respuestaDeseada(self, condicion, entrada): valorcondi = entrada*condicion valorc = valorcondi.sum() if (valorc>=0): return 1 else: return 0 def Act(self, w, entrada): a = w*entrada act = a.sum() return act def Compara(self, act): global capa#=list() if(act>=0): capa = append(capa, 1) return 1 else: capa = append(capa, 0) return 0 def Entrena(self, w, y, respdesea, entrada): global tasa_de_aprendizaje entrenar = tasa_de_aprendizaje * (respdesea - y) * entrada w += entrenar return w def Capa(self): global capa capa = append(capa, -1) return capa def __init__(self, n, num, ncapas): global capa p=0 w = self.W(n) condicion = self.Condicion(n, w) print w print condicion for p in range(num): entrada = self.Entrada(n) act = self.Act(w, entrada) y = self.Compara(act) respdesea = self.respuestaDeseada(condicion, entrada) entrena = self.Entrena(w, y, respdesea, entrada) w = entrena for i in range(len(entrada)-1): print entrada[i], print y, respdesea entrada = empty(0) act = 0 y = 0 respdesea = 0 entrena = 0 w = empty(0) condicion = empty(0) for f in range(ncapas): w = self.W(num) condicion = self.Condicion(num, w) print w print condicion entrada = self.Capa() for h in range(num): entrada = self.Entrada(num) act = self.Act(w, entrada) y = self.Compara(act) respdesea = self.respuestaDeseada(condicion, entrada) entrena = self.Entrena(w, y, respdesea, entrada) w = entrena for t in range(len(entrada)-1): print entrada[i], print y, respdesea print w print "Capa",i , ":", capa #se le dan como argumentos el total de entradas (tot), cuantas veces repetirá todo el proceso (num) y el total de capas n = neu(int(argv[1]), int (argv[2]), int (argv[3]))
November 20, 2012
Fase 3
En esta fase de la red neuronal se le agregaron capas.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment