Sigmora
Pracovní postupy

Neuronová síť od nuly v Pythonu, krok za krokem

03
Ladění trénování

Ladění trénovacího skriptu, který selhává

Váš Python soubor by měl trénovat malou síť, ale proces se zastaví chybou nebo vytiskne podivná čísla. Sigmora otevře soubor, najde důležité řádky, spustí váš trénovací příkaz přes Shell a zobrazí skutečný výstup v kartě, takže uvidíte, co se stalo, místo abyste hádali. Začněte s jedním souborem. Agent sám netrénuje nic, protože to dělá váš kód, a může to trvat, kolik to trvá. Smyčka je krátká: přečíst, spustit, porovnat, změnit. Vy si vybíráte složku, režim a rozhodujete, kterou změnu přijmout. Používejte pouze kód, data a počítače, které vlastníte nebo máte právo používat, a udržujte každý experiment dostatečně malý na to, aby šel zopakovat.

01

Otevřete složku

Vyberte pracovní složku, která obsahuje váš trénovací skript, konfigurační soubor a logy. Nástroje pro práci se soubory fungují v této složce a list_dir ukáže, co je uvnitř. Udržujte data, která máte právo používat, na stejném místě, aby byly všechny cesty ve vašem skriptu krátké. Nástroje pro práci se soubory používají tuto složku.

02

Požádejte o přečtení

Požádejte Sigmora, aby přečetla trénovací skript a vysvětlila vrstvy, ztrátu a smyčku. read_file a grep citují řádky, na které odkazují, takže můžete vysvětlení zkontrolovat proti svému kódu. Režim Plan only nic nemění. Zeptejte se znovu, pokud je blok stále nejasný.

03

Spusťte příkaz

Zadejte svůj trénovací příkaz a vyberte režim. Shell ho spustí ve Windows, ve WSL nebo přes SSH na vašem vlastním serveru a karta zobrazí skutečný výstup a exit kód. Python musí být nainstalován tam, kde příkaz běží. Trénování může na vašem hardwaru trvat dlouho.

04

Zkontrolujte výsledek

Rozbalte kartu a přečtěte vytisknutou chybu nebo hodnoty ztráty. Nulový exit kód pouze znamená, že skript skončil bez chyby, takže hodnoty posuďte sami, na validačních datech, která model ještě neviděl, a zapište si, co jste viděli. Poté se rozhodněte pro další malou změnu.

Příklad: jeden neuron se naučí hovor AND v prostém Pythonu

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)

Tento soubor trénuje jeden neuron, aby se naučil hovor AND s rychlostí učení a krátkou smyčkou aktualizací vah, poté vytiskne váhy a bias. Používá prostý Python, žádné knihovny ani náhodná čísla, takže každý běh dává stejný výsledek. Spusťte ho přes Shell, změňte počet epoch a spusťte ho znovu, abyste viděli, co se změní ve vytisknutých vahách.

Průvodce: sledování experimentu s konvoluční neuronovou sítí v Pythonu

Přečtěte trénovací kód

Než se něco změní, Sigmora čte. read_file otevře váš trénovací skript, list_dir ukáže složku s daty a grep najde řádky, které definují vrstvy, ztrátu a smyčku. Vidíte text souboru v kartě, takže můžete porovnat velikosti vrstev s tvarem vašich dat. Agent v této fázi nic nemění. Modely neuronových sítí pro logické hovor, jako je výše uvedený soubor AND, jsou klasickou první úlohou a stejný krok čtení vyhovuje neuronové síti od nuly v Pythonu, kterou jste napsali minulý měsíc a už si nepamatujete. Požádejte o vysvětlení libovolného bloku prostými slovy nebo přepněte na Plan only, pokud chcete písemné vysvětlení bez akcí. Čtěte každé vysvětlení vedle kódu a zkontrolujte, zda odpovídá tomu, co jste napsali.

Spusťte trénovací příkaz

Vyberte Auto-run pro běh, kterému důvěřujete, nebo Ask first, pokud chcete schválit akce, které něco změní. Shell spustí váš trénovací příkaz, například python perceptron_and.py, v prostředí, které jste vybrali, a karta zobrazí skutečný výstup a exit kód. Rozbalte kartu a přečtěte si celý log vašeho skriptu konvoluční neuronové sítě v Pythonu řádek po řádku. Trénování může trvat, kolik to trvá, a Sigmora ho nezrychluje. Když se ztráta v neuronové síti neshoduje, log je místo, kde to uvidíte jako první. Podívejte se na čísla, ne pouze na exit kód, protože nulový exit kód znamená pouze to, že skript skončil. Poté se rozhodněte, zda kód potřebuje změnu, a požádejte o diff pouze pokud ano.

Opravte chybu tvaru nebo pomalou ztrátu

edit_file změní skript a zobrazí diff. V režimu Ask first se nic nezapisuje, dokud neschválíte diff, zatímco Auto-run aplikuje změnu okamžitě. Chyba tvaru obvykle znamená, že data a první vrstva nesedí, takže opravou je často jedno číslo. Ztráta, která se téměř nepohybuje, může naznačovat rychlost učení, štítky, které neodpovídají datům, nebo model, který ještě nedokáže přetrénovat malou šablonu. Nejprve zkuste tuto malou šablonu. Přetrénování a podtrénování jsou různé problémy, takže se podívejte na trénovací a validační ztrátu, než něco velkého změníte. Vytvoření neuronové sítě pro šachy je větší projekt, ale začíná stejně. Po úpravě znovu spusťte příkaz přes Shell a porovnejte nová čísla se starými.

Logujte výsledky do CSV souboru

Pro porovnání běhů potřebujete čísla v souboru. write_file vytvoří CSV soubor ve vaší pracovní složce, append_file přidá řádek na epochu a read_file ho znovu načte, aby agent mohl dát 2 běhy vedle sebe. Sigmora za vás data neanalyzuje; uloží čísla a zobrazí je a vy rozhodnete, co znamenají. Udržujte validační data oddělená od trénovacích dat a ponechte testovací sadu nedotčenou až do konce. Režim Plan only může zapsat další experiment jako plán bez spuštění čehokoli. Když jste připraveni, přepněte režim a nechte agenta, aby ho provedl. Než výsledek uložíte, otevřete CSV soubor a zkontrolujte, zda řádky odpovídají tomu, co karta vytiskla, a zda je každý sloupec označen.

Sigmora pro Windows

Vyzkoušte pracovní postup na vlastním projektu

Stáhnout Sigmora ↗