SHARE
TWEET

Fase1

jetsky0 Oct 8th, 2012 28 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/python
  2. #Adan Silva
  3. #Utilice listas por que me marco horrores la instalacion de numpy, corregiremos esto para la prox entrega                                                                                                                                              
  4. import random
  5.  
  6. def main():    
  7.                                                                                                                                      
  8.     x=[]        #entradas
  9.                                                                                                                                            
  10.     w=[]        #pesos
  11.                                                                                                                                                
  12.     wn=[]       #pesos nuevos
  13.  
  14.     wi=[]       #pesos nuevos insertados
  15.    
  16.  
  17.     alpha = 0.05
  18.     umbral = 0.5
  19.     t = 0       #salida esperada
  20.     res = 0
  21.     suma = 0
  22.     mult = 0
  23.  
  24.     print "Ingresa 10 entradas decimales entre 0 y 1"
  25.  
  26.     for i in range(10):                 #recibir entradas binarias de 10 elementos
  27.                                                                                                                
  28.         x.insert(i, input())            #almacenar elementos de entrada tecleados por el usuario
  29.                                                                                                                              
  30.         w.insert(i,random.uniform(-1.0,1.0))    #generar pesos random
  31.                                                                                                                      
  32.         res = x[i] * w[i]               #sumatoria del producto de elementos de entrada por elmentos del peso
  33.  
  34.         suma = suma + res               #actualizar sumatoria
  35.  
  36.                                                                                                          
  37.     x.append(-1)        #agregar al vector de entradas un -1 al final
  38.     print '\nVector de elementos de entrada introducido \n', x[:]
  39.                                                                                                        
  40.     w.append(umbral)    #agregar al vector de pesos el umbral al final
  41.     print '\nVector de elementos de pesos generado \n', w[:]
  42.  
  43.                                                                                                          
  44.     t = raw_input("\nSalida Esperada (0 o 1): ")        #pedir al usuario salida esperada
  45.     t = int(t)
  46.                                                                                                  
  47.     print '\nLa sumatoria de productos de entradas por pesos es:', suma #imprimir la sumatoria total del producto de entradas por pesos
  48.  
  49.                                                                                                                      
  50.     if(suma>=umbral):   #comparar suma con el umbral
  51.                                                                                    
  52.         p=1             #suma mayor o igual a 1, salida obtenida = 1
  53.         print '\nLa salida obtenida = 1'
  54.    
  55.     else:
  56.                                                                              
  57.         p=0             #de lo contrario, salida obtenida = 0
  58.         print '\nLa salida esperada = 0'
  59.  
  60.    
  61.     if(t!=p):           #si la salida esperada difiere de la salida producida, se realiza un cambio en el vector de pesos
  62.         for i in range(11):
  63.            
  64.             mult = alpha*(t-p)*x[i]     #agregamos la tasa de aprendizaje alpha para modificar los pesos
  65.             wi.insert(i,w[i] + mult)
  66.             wn.insert(i,wi[i])          #agregamos a un vector nuevo los nuevos pesos
  67.        
  68.         print '\nVector de elementos de pesos nuevos generado es \n', wn[:]     #imprimimos el vector nuevo de pesos
  69.  
  70. main()
RAW Paste Data
Top