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
0