From 518ad68bcf0b748e20dc3ecc8e5d659c35448e7b Mon Sep 17 00:00:00 2001 From: mirimatcode Date: Sat, 25 Jan 2025 19:14:34 +0100 Subject: [PATCH] fixate le formule per generare le rette --- multi_layer.py | 19 +++++++------------ pesi_xor.txt | 6 ------ single_layer.py | 2 +- 3 files changed, 8 insertions(+), 19 deletions(-) delete mode 100644 pesi_xor.txt diff --git a/multi_layer.py b/multi_layer.py index ad45dd4..5f168b4 100644 --- a/multi_layer.py +++ b/multi_layer.py @@ -7,19 +7,14 @@ x = [(0,0),(0,1),(1,0),(1,1)] # Combinazioni output = (0,1,1,0) # XOR Logico #output = (0,0,0,1) # AND Logico #output = (0,1,1,1) # OR Logico +#output = (1,1,1,0) # NAND Logico +#output = (1,0,0,0) # NOR Logico +#output = (1,0,0,1) # XNOR Logico + corrette = 0 soglia_funzione_attivazione = 0.5 -#XOR -""" pin_est_1 = Percettrone(w1=1.7453135346642987, w2=1.6392557285802016, bias=-2.8396189093513544, lre=0.2) -pin_est_2 = Percettrone(w1=2.0579802021958487, w2=2.0049998768936956,bias=-1.510128337351728, lre=0.2) -pinout = Percettrone(w1=-4.872221528209076, w2=2.863271416125622, bias=-0.2593053838395353, lre=0.2) """ - -""" pin_est_1 = Percettrone(w1=5.057571564186738, w2=-5.572150383812219, bias=-3.1715170666210444) -pin_est_2 = Percettrone(w1=-2.1393104621179835, w2=1.6774379439199167, bias=-0.7542487269674267) -pinout = Percettrone(w1=3.2061105491734967, w2=1.9571327990877703, bias=-1.319795396902547) """ - rette = {"P1":[], "P2":[], "POUT":[]} #Pesi per AND, OR e XOR (sigmoide) @@ -58,9 +53,9 @@ for i in range(1, MAX_EPOCHE): #Epoche disegna_funzione(pinout, previsione, y_est_1, y_est_2, True, errore) disegna_funzione(pin_est_2, y_est_2, x[j][0], x[j][1], False) try: - rette["P1"].append([-(pin_est_1.w1 * x[j][0])/pin_est_1.w2, -(pin_est_1.bias/pin_est_1.w2)]) - rette["P2"].append([-(pin_est_2.w1 * x[j][0])/pin_est_2.w2, -(pin_est_2.bias/pin_est_2.w2)]) - rette["POUT"].append([-(pinout.w1 * x[j][0])/pinout.w2, -(pinout.bias/pinout.w2)]) + rette["P1"].append([-(pin_est_1.w1/pin_est_1.w2), -(pin_est_1.bias/pin_est_1.w2)]) + rette["P2"].append([-(pin_est_2.w1/pin_est_2.w2), -(pin_est_2.bias/pin_est_2.w2)]) + rette["POUT"].append([-(pinout.w1/pinout.w2), -(pinout.bias/pinout.w2)]) except ZeroDivisionError: pass diff --git a/pesi_xor.txt b/pesi_xor.txt deleted file mode 100644 index 3dc8443..0000000 --- a/pesi_xor.txt +++ /dev/null @@ -1,6 +0,0 @@ -Percettrone 1: - W1: 2.3138819308216796, W2: 2.326257532279927, bias: -0.9188571437718164 -Percettrone 2: - W1: 1.5239321297796238, W2: 1.329809031263888, bias: -2.149847621526194 -Percettrone OUT: - W1: 3.119539190190677, W2: -3.7529684395700835, bias: -0.9507100523883126 \ No newline at end of file diff --git a/single_layer.py b/single_layer.py index 7c4a197..b4a4557 100644 --- a/single_layer.py +++ b/single_layer.py @@ -33,7 +33,7 @@ for i in range(1,100000): #Epoche disegna_funzione(p, y, x[j][0], x[j][1], True, errore) try: - m = -(p.w1 * x[j][0])/p.w2 + m = -(p.w1/p.w2) q = -(p.bias/p.w2) rette.append([m,q]) except ZeroDivisionError: