aggiunta grafici sia per il single layer che per il multilayer

This commit is contained in:
2025-01-23 17:14:47 +01:00
parent a267d11794
commit 9fd0fcb2fa
4 changed files with 111 additions and 54 deletions

View File

@@ -22,4 +22,75 @@ def stampa_risultati_multilayer(pin_est_1, pin_est_2, pinout):
print("Percettrone 2:")
print(f"\t W1: {pin_est_2.w1}, W2: {pin_est_2.w2}, bias: {pin_est_2.bias}")
print("Percettrone OUT:")
print(f"\t W1: {pinout.w1}, W2: {pinout.w2}, bias: {pinout.bias}")
print(f"\t W1: {pinout.w1}, W2: {pinout.w2}, bias: {pinout.bias}")
def disegna_grafico_singolo(lista_rette):
import matplotlib.pyplot as plt
import numpy as np
# m: coefficiente angolare
# q: intercetta
# Crea un array di valori ascissa per disegnare la retta penso
x = np.linspace(-10, 10, 100)
plt.title('AND Logico')
plt.xlabel('X1')
plt.ylabel('X2')
#AND Logico
plt.plot(0, 0, 'o', color='red', markeredgewidth=10)
plt.plot(0, 1, 'o', color='red',markeredgewidth=10)
plt.plot(1, 0, 'o', color='red',markeredgewidth=10)
plt.plot(1, 1, 'o', color='green',markeredgewidth=10)
plt.xlim(0, 2)
plt.ylim(0, 2)
for discriminante in lista_rette:
# Calcola i valori di y usando l'equazione della retta
y = discriminante[0] * x + discriminante[1]
discriminante, = plt.plot(x, y, label=f'y = mx + q', color='blue') # RETTA
plt.pause(0.0001)
discriminante.remove()
plt.show()
def disegna_grafico_multi(lista_rette):
import matplotlib.pyplot as plt
import numpy as np
# Crea un array di valori ascissa per disegnare la retta penso
x = np.linspace(-10, 10, 100)
plt.title('XOR Logico')
plt.xlabel('X1')
plt.ylabel('X2')
#XOR Logico
plt.plot(0, 0, 'o', color='red', markeredgewidth=5)
plt.plot(0, 1, 'o', color='green',markeredgewidth=5)
plt.plot(1, 0, 'o', color='green',markeredgewidth=5)
plt.plot(1, 1, 'o', color='red',markeredgewidth=5)
plt.xlim(0, 2)
plt.ylim(0, 2)
discriminanti_p1 = lista_rette["P1"]
discriminanti_p2 = lista_rette["P2"]
discriminanti_pout = lista_rette["POUT"]
size_vettori = len(discriminanti_pout)
for i in range(0, size_vettori):
plot_uno, = plt.plot(x, discriminanti_p1[i][0] * x + discriminanti_p1[i][1], label=f'percettrone 1', color='green') # RETTA
plot_due, = plt.plot(x, discriminanti_p2[i][0] * x + discriminanti_p2[i][1], label=f'percettrone 2', color='red') # RETTA
plot_out, = plt.plot(x, discriminanti_pout[i][0] * x + discriminanti_pout[i][1], label=f'percettrone out', color='blue') # RETTA
plt.pause(0.0001)
plot_uno.remove()
plot_due.remove()
plot_out.remove()
plt.show()