Python - como insertar matrices dinamicas a mi perceptron para que sea de n entradas

 
Vista:

como insertar matrices dinamicas a mi perceptron para que sea de n entradas

Publicado por David Salvador (2 intervenciones) el 11/11/2020 16:10:22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
print("*************************************************************************\n\t\t\t\tP E R C E P T R O N\n*************************************************************************\n")
 
#funcion entrenarmiento
def entrenamiento(w1,w2,bias,fac_ap,epocas,n,x1,x2,y):
    errores = True
    while errores:
        errores = False
        for i in range(n):
            z = ((x1[i]*w1)+(x2[i]*w2))-bias #CALCULAMOS z
 
            if z >= 0:          # FUNCION ESCALON
                z =1
            else:
                z = 0
 
            if z != y[i]:
                errores = True
                error = (y[i] - z) #Calculamos error
                bias = bias +(-(fac_ap*error)) #Ajustamos bias
                w1 = w1 + (x1[i] * error * fac_ap) #Ajustar W1
                w2 = w2 + (x2[i] * error * fac_ap) #Ajustar W2
                epocas +=1             #Incrementar epocas
    return w1,w2,bias,epocas
 
#Delcaracion de variables
w1= float(input("Ingrese el valor de W1: "))
w2= float(input("Ingrese el valor de W2: "))
bias = float(input("Ingrese el valor de bias: "))
fac_ap= float(input("Ingrese el valor del factor de aprendizaje: "))
epocas = 0
n = int(input("Ingresa el numero de muestras: "))
x1= []                                          #Quiero que el usuario defina cuantas entradas va tener el perceptron
x2= []
y = []
for x in range(n):
    valor_x1=int(input("Ingrese el valor "+str(x)+" de X1: "))
    valor_x2=int(input("Ingrese el valor "+str(x)+" de X2: "))
    valor_y=int(input("Ingrese el valor "+str(x)+" de Y: "))
    x1.append(valor_x1)
    x2.append(valor_x2)
    y.append(valor_y)
 
#imprimimos valores iniciales
print("\n\tValores Iniciales: \n")
print("X1 = ",x1)
print("X2 = ",x2)
print("Y = ",y)
print("W1 = ",w1)
print("W2 = ",w2)
print("BIAS:  = ",bias)
 
#Imprimimos valores finales
w1,w2,bias,epocas = entrenamiento(w1,w2,bias,fac_ap,epocas,n,x1,x2,y)
print("\n\tValores Entrenados:\n")
print("W1 = ",w1)
print("W2 = ",w2)
print("BIAS:  = ",bias)
print("EPOCAS: ",epocas)
 
#PROBANDO ENTRADAS Y SALIDAS
choice = int(input("\n1-Probar Entrenamiento.\n2-Salir "))
while choice ==1:
    x_1 = int(input("\tX1 = "))
    x_2 = int(input("\tX2 = "))
    z_out = ((w1*x_1)+(w2*x_2))-bias;
    if z_out >= 0:
        print("\tY = 1.")
    else:
        print("\tY = 0.")
    choice = int(input("\n1-Probar otro valor.\n2-Salir\t\t "))
 
print("\n\t\tE N D.\n")
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder