Een neuraal netwerk vanaf nul in Python, stap voor stap
03
Foutopsporing tijdens training
Een trainingscript dat faalt debuggen
Je Python-bestand moet een klein netwerk trainen, maar het stopt met een fout of print vreemde getallen. Sigmora opent het bestand, vindt de relevante regels, voert je trainingscommando uit met Shell en toont de echte output in een kaart, zodat je ziet wat er gebeurde in plaats van raden. Begin met één bestand. De agent traint niets zelf, omdat jouw code dat doet, en dat kan zo lang duren als het duurt. De cyclus is kort: lezen, uitvoeren, vergelijken, aanpassen. Jij kiest de map, jij kiest de modus en jij beslist welke aanpassing je accepteert. Gebruik alleen code, data en computers die je bezit of mag gebruiken, en houd elk experiment klein genoeg om te herhalen.
01
Open de map
Kies de werkmap met je trainingscript, je configuratiebestand en je logs. Bestandstools werken in die map, en list_dir toont wat erin zit. Houd de data die je mag gebruiken op dezelfde plek, zodat elke pad in je script kort blijft. De bestandstools gebruiken deze map.
02
Vraag om te lezen
Vraag Sigmora om het trainingscript te lezen en de lagen, de loss en de lus uit te leggen. read_file en grep citeren de regels die ze bedoelen, zodat je de uitleg kunt controleren tegen je eigen code. Plan only modus verandert niets. Vraag opnieuw als een blok nog onduidelijk is.
03
Voer het commando uit
Noem je trainingscommando en kies een modus. Shell voert het uit in Windows, in WSL of via SSH op je eigen server, en de kaart toont de echte output en exitcode. Python moet geïnstalleerd zijn waar het commando draait. Training kan lang duren op je hardware.
04
Controleer het resultaat
Vouw de kaart uit en lees de afgedrukte fout of de loss-waarden. Een exitcode nul betekent alleen dat het script zonder fout eindigde, dus beoordeel de getallen zelf, op validatiedata die het model niet heeft gezien, en noteer wat je zag. Beslis dan over de volgende kleine aanpassing.
Voorbeeld: één neuron leert de AND-poort in platte Python
Sigmora · Voorbeeld uitvoeren● Ask first
Voer perceptron_and.py uit, verhoog dan het aantal epochs en voer het opnieuw uit.
read_fileperceptron_and.pyread
Shellpython perceptron_and.pyexit 0
edit_fileperceptron_and.pysaved
Shellpython perceptron_and.pyexit 0
wacht op jouw goedkeuring voordat de volgende stap wordt uitgevoerdAfwijzenAccepteren
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)
Dit bestand traint één neuron om de AND-poort te leren met een leersnelheid en een korte lus van gewichtaanpassingen, en drukt vervolgens de gewichten en de bias af. Het gebruikt platte Python, geen bibliotheken en geen willekeurige getallen, dus elke run geeft hetzelfde resultaat. Voer het uit met Shell, verander het aantal epochs en voer het opnieuw uit om te zien wat er verandert in de afgedrukte gewichten.
Uitleg: een convolutioneel neuraal netwerk-experiment in Python volgen
Lees de trainingscode
Voordat er iets wordt aangepast, leest Sigmora. read_file opent je trainingscript, list_dir toont de datamap en grep vindt de regels die de lagen, de loss en de lus definiëren. Je ziet de bestandstekst in de kaart, zodat je de grootte van de lagen kunt vergelijken met de vorm van je data. De agent verandert niets in deze fase. Neuraalnetwerkmodellen van logische poorten, zoals het AND-bestand hierboven, zijn de klassieke eerste oefening, en dezelfde leestap past bij een neuraal netwerk vanaf nul in Python dat je vorige maand schreef en niet meer weet. Vraag om elk blok in gewone woorden, of schakel over naar Plan only als je een geschreven uitleg wilt en geen acties. Lees elke uitleg naast de code en controleer of deze overeenkomt met wat je schreef.
Voer het trainingscommando uit
Kies Auto-run voor een run die je vertrouwt, of Ask first als je acties die iets veranderen wilt goedkeuren. Shell start je trainingscommando, bijvoorbeeld python perceptron_and.py, in de omgeving die je koos, en de kaart toont de echte output en de exitcode. Vouw de kaart uit om de volledige log van je convolutioneel neuraal netwerk Python-script regel voor regel te lezen. Training kan zo lang duren als het duurt, en Sigmora versnelt het niet. Wanneer de loss niet convergeert in een neuraal netwerk, is de log waar je het eerst ziet. Kijk naar de getallen, niet alleen naar de exitcode, omdat een exitcode nul alleen betekent dat het script klaar was. Beslis dan of de code een aanpassing nodig heeft, en vraag alleen om de diff als dat zo is.
Een vormfout of een trage loss oplossen
edit_file past het script aan en toont een diff. In Ask first modus wordt niets geschreven totdat je de diff accepteert, terwijl Auto-run de aanpassing direct toepast. Een vormfout betekent meestal dat de data en de eerste laag niet overeenkomen, dus de oplossing is vaak één getal. Een loss die nauwelijks beweegt, kan wijzen naar de leersnelheid, labels die niet overeenkomen met de data, of een model dat nog niet in staat is om een kleine batch te overfiten. Probeer die kleine batch eerst. Overfitting en underfitting zijn verschillende problemen, dus kijk naar training en validatie loss voordat je iets groots verandert. Een neuraal netwerk voor schaken bouwen is een groter project, maar het begint op dezelfde manier. Na de edit, voer het commando opnieuw uit met Shell en vergelijk de nieuwe getallen met de oude.
Resultaten loggen naar een CSV-bestand
Om runs te vergelijken heb je getallen in een bestand nodig. write_file maakt een CSV-bestand in je werkmap, of append_file voegt één rij per epoch toe, en read_file laadt het opnieuw zodat de agent 2 runs naast elkaar kan zetten. Sigmora analyseert de data niet voor je; het slaat de getallen op en toont ze, en jij beslist wat ze betekenen. Houd de validatiedata gescheiden van de trainingsdata en laat de testset onaangetast tot het einde. Plan only modus kan het volgende experiment als een plan schrijven zonder iets uit te voeren. Als je klaar bent, schakel de modus en laat de agent het uitvoeren. Voordat je een resultaat bewaart, open het CSV-bestand en controleer of de rijen overeenkomen met wat de kaart printte en of elke kolom gelabeld is.