Sigmora
Flussi di lavoro

Rete neurale in Python da zero, passo dopo passo

03
Debug dell'addestramento

Debugga uno script di addestramento che fallisce

Il tuo file Python dovrebbe addestrare una piccola rete, ma si interrompe con un errore o stampa numeri strani. Sigmora apre il file, individua le righe rilevanti, esegue il comando di addestramento con Shell e mostra l'output reale in una scheda, così vedi cosa è successo invece di fare supposizioni. Inizia con un solo file. L'agente non esegue l'addestramento stesso, perché lo fa il tuo codice, e può richiedere tutto il tempo necessario. Il ciclo è breve: leggi, esegui, confronta, modifica. Scegli tu la cartella, scegli la modalità e decidi tu quale modifica accettare. Usa solo codice, dati e computer che possiedi o hai il diritto di utilizzare, e mantieni ogni esperimento abbastanza piccolo da essere ripetibile.

01

Apri la cartella

Scegli la cartella di lavoro che contiene il tuo script di addestramento, il file di configurazione e i log. Gli strumenti per i file operano in quella cartella e list_dir mostra cosa contiene. Tieni i dati che hai il diritto di utilizzare nello stesso posto, così ogni percorso nel tuo script rimane breve. Gli strumenti per i file usano questa cartella.

02

Chiedi una lettura

Chiedi a Sigmora di leggere lo script di addestramento e di spiegare gli strati, la funzione di perdita e il ciclo. read_file e grep citano le righe a cui si riferiscono, così puoi verificare la spiegazione contro il tuo codice. La modalità Plan only non modifica nulla. Chiedi di nuovo se un blocco è ancora poco chiaro.

03

Esegui il comando

Indica il tuo comando di addestramento e scegli una modalità. Shell lo esegue in Windows, in WSL o via SSH sul tuo server personale, e la scheda mostra l'output reale e il codice di uscita. Python deve essere installato dove viene eseguito il comando. L'addestramento può richiedere molto tempo sull'hardware locale.

04

Verifica il risultato

Espandi la scheda e leggi l'errore stampato o i valori di perdita. Un codice di uscita zero significa solo che lo script è terminato senza errori, quindi valuta tu i numeri sui dati di validazione che il modello non ha ancora visto e annota ciò che hai osservato. Poi decidi sulla prossima piccola modifica.

Esempio: un neurone impara la porta AND in Python puro

perceptron_and.py
# AND gate: one neuron (perceptron) learns the table
rows = [((0,0),0), ((0,1),0), ((1,0),0), ((1,1),1)]
w = [0.0, 0.0]
b = 0.0
rate = 0.1
for epoch in range(20):
    for x, target in rows:
        total = w[0] * x[0] + w[1] * x[1] + b
        out = 1 if total > 0 else 0
        err = target - out
        w[0] += rate * err * x[0]
        w[1] += rate * err * x[1]
        b += rate * err
print("weights:", w, "bias:", b)

Questo file addestra un singolo neurone a imparare la porta AND con un tasso di apprendimento e un breve ciclo di aggiornamento dei pesi, poi stampa i pesi e il bias. Usa Python puro, nessuna libreria e nessun numero casuale, quindi ogni esecuzione dà lo stesso risultato. Esegui con Shell, cambia il numero di epochs ed esegui di nuovo per vedere cosa cambia nei pesi stampati.

Guida: tracciare un esperimento Python per una rete neurale convoluzionale

Leggi il codice di addestramento

Prima che venga modificato qualcosa, Sigmora legge. read_file apre il tuo script di addestramento, list_dir mostra la cartella dei dati e grep trova le righe che definiscono gli strati, la funzione di perdita e il ciclo. Vedi il testo del file nella scheda, così puoi confrontare le dimensioni degli strati con la forma dei tuoi dati. L'agente non modifica nulla in questa fase. I modelli di rete neurale per porte logiche, come il file AND sopra, sono il classico primo esercizio, e lo stesso passo di lettura si adatta a una rete neurale da zero in Python che hai scritto il mese scorso e non ricordi più. Chiedi spiegazioni per qualsiasi blocco in parole semplici, oppure passa a Plan only se vuoi una spiegazione scritta e nessuna azione. Leggi ogni spiegazione accanto al codice e verifica che corrisponda a ciò che hai scritto.

Esegui il comando di addestramento

Scegli Auto-run per un'esecuzione di cui ti fidi, o Ask first se vuoi approvare le azioni che modificano qualcosa. Shell avvia il tuo comando di addestramento, ad esempio python perceptron_and.py, nell'ambiente che hai scelto, e la scheda mostra l'output reale e il codice di uscita. Espandi la scheda per leggere il log completo del tuo script Python per rete neurale convoluzionale riga per riga. L'addestramento può richiedere tutto il tempo necessario e Sigmora non lo accelera. Quando la perdita non converge in una rete neurale, il log è dove lo vedi per primo. Guarda i numeri, non solo il codice di uscita, perché un codice di uscita zero significa solo che lo script è terminato. Poi decidi se il codice ha bisogno di una modifica e chiedi la diff solo se necessario.

Correggi un errore di forma o una perdita lenta

edit_file modifica lo script e mostra una diff. In modalità Ask first non viene scritto nulla finché non accetti la diff, mentre Auto-run applica la modifica immediatamente. Un errore di forma di solito significa che i dati e il primo strato non corrispondono, quindi la correzione è spesso un solo numero. Una perdita che si muove a malapena può indicare il tasso di apprendimento, etichette che non si allineano con i dati, o un modello che non è ancora in grado di overfit su un mini-batch piccolo. Prova prima quel mini-batch. Overfitting e underfitting sono problemi diversi, quindi guarda la perdita di addestramento e di validazione prima di cambiare qualcosa di grande. Costruire una rete neurale per gli scacchi è un progetto più grande, ma inizia nello stesso modo. Dopo la modifica, esegui di nuovo il comando con Shell e confronta i nuovi numeri con quelli vecchi.

Registra i risultati in un file CSV

Per confrontare le esecuzioni hai bisogno di numeri in un file. write_file crea un file CSV nella tua cartella di lavoro, o append_file aggiunge una riga per epoch, e read_file lo carica di nuovo così l'agente può mettere 2 esecuzioni fianco a fianco. Sigmora non analizza i dati per te; salva i numeri e li mostra, e tu decidi cosa significano. Tieni i dati di validazione separati dai dati di addestramento e lascia il set di test intatto fino alla fine. La modalità Plan only può scrivere il prossimo esperimento come piano senza eseguire nulla. Quando sei pronto, cambia la modalità e lascia che l'agente lo esegua. Prima di conservare un risultato, apri il file CSV e verifica che le righe corrispondano a ciò che ha stampato la scheda e che ogni colonna sia etichettata.

Sigmora per Windows

Prova il flusso di lavoro sul tuo progetto

Scarica Sigmora ↗