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
Sigmora · Esegui l'esempio● Ask first
Esegui perceptron_and.py, poi aumenta gli epochs ed esegui di nuovo.
read_fileperceptron_and.pyread
Shellpython perceptron_and.pyexit 0
edit_fileperceptron_and.pysaved
Shellpython perceptron_and.pyexit 0
in attesa del tuo OK prima del passaggio successivoRifiutaAccetta
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.