Příkazy nejvyšší úrovně pomocí BrainScriptu
Hlavní příkaz train
nejvyšší úrovně atest
eval
/popisuje se na stránce Train, Test, Eval. Níže jsou podrobně popsány další příkazy nejvyšší úrovně.
Přizpůsobit příkaz
Tento příkaz přizpůsobí již natrénovaný model pomocí regulárního rozdílu KL. Doporučuje se, aby se všechny ostatní úpravy prováděly pomocí úprav modelu. Příkaz adaptace je velmi podobný příkazu vlaku s tím rozdílem, že má dva další parametry:
originalModelFileName
: název souboru modelu, který se přizpůsobí.refNodeName
: název uzlu ve výpočetní síti, který se použije pro regulární odchylku KL.
CV
Tento příkaz vyhodnotí řadu modelů z různých epoch v sadě vývoje (nebo křížového ověřování) a zobrazí informace o nejlepším modelu. Kroměparametrůch
crossValidationInterval
: pole 3 celých čísel identifikující počáteční epochu, zvýšení epochy a konečnou epochu k vyhodnocení. Například 3:2:9 znamená, že modely 3,5,7 a 9 se vyhodnotí.sleepTimeBetweenRuns
: kolik sekund se má čekat mezi spuštěními. To je potřeba jenom v případě, že je gpu příliš horké.
Příkaz pro zápis
Tento příkaz zapíše hodnotu výstupního uzlu do souboru. Související parametry jsou
reader
: blok konfigurace čtenáře pro čtení vstupních dat.writer
: blok konfigurace zapisování, který určuje, jak zapisovat výstupní data. Pokud tato hodnota není zadána, použije se parametr outputPath.minibatchSize
: velikost minibatchu, která se má použít při čtení a zpracování datové sady.epochSize
: velikost datové sady. Výchozí hodnota je 0. Celá datová sada se vyhodnotí, pokud je nastavená na hodnotu 0.modelPath
: cesta k modelu, který se má použít k výpočtu výstupu.outputPath
: cesta k souboru pro zápis výstupu ve formátu textu. Pokud blok zapisovač existuje, bude tento parametr ignorován. Musí existovat výstupní cesta nebo zapisovač.outputNodeNames
: Pole jednoho nebo více názvů výstupních uzlů, které se mají zapsat do souboru.
Příkaz Upravit
Tento příkaz upraví model a uloží upravený model do souboru. Toto je zastaralé. Přidružené parametry jsou:
editPath
: cesta ke skriptu MEL, který se má spustit.ndlMacros
: cesta k souboru maker NDL, která se načte a použije ve skriptu MEL.
Příkaz SVD
Tento příkaz provádí aproximaci nízkého pořadí pomocí rozkladu SVD naučitelných parametrů. Primární motivací je faktorizovat matici hmotnosti se dvěma maticemi nižších pořadí, aby se zlepšila rychlost odvozování a zachování přesnosti. Příklad:
svd = [
action = "SVD"
modelPath = "train\lstm.model.67"
outputModelPath = "train\lstm.model.svd"
SVDConfig = "nodeConfigs"
]
Přidružené bloky parametrů jsou:
modelPath
: určuje, kam se má načíst počáteční model.outputModelPath
: určuje, kam se má upravený model uložit.SVDConfig
: Konfigurační soubor, který určuje, jak se svD provádí pro různé skupiny uzlů. Tato konfigurace je ve formátu se dvěma sloupci:<NodeNameRegex> <float>
První sloupec je regulární výraz, který bude odpovídat názvu uzlu v jedné skupině. Druhý sloupec je float označující, jaké procento SVDenergy se bude uchovávat po SVD, kde SVD-energie je definována jako součet jedinečných hodnot. Například konfigurace
`LSTMoutput[1-3].Wx[ifco] 0.4`
`LSTMoutput[1-3].Wh[ifco] 0.6`
způsobí agresivnější rozklad SVD (0,4) pro neopakující připojení (od x do i,f,c,o bran) v LSTM a méně agresivní rozklad SVD pro opakující se připojení (od h do i,f,c,o bran), kde jsou názvy parametrů definovány v NDL.
Dumpnode – příkaz
Tento příkaz vypíše informace o uzlech do výstupního souboru, který lze také provést v mel s větší kontrolou. Související parametry jsou:
modelPath
: cesta k souboru modelu obsahujícímu uzly k výpisu stavu.nodeName
: název uzlu, který se má zapsat do souboru. Pokud nezadáte všechny uzly, budou výpisy.nodeNameRegex
: regulární výraz pro názvy uzlů, které se mají zapsat do souboru. Pokud je zadaný,nodeName
parametr se ignoruje.outputFile
: cesta k výstupnímu souboru. Pokud nezadáte název souboru, automaticky se vygeneruje na základě modeluPath.printValues
: určuje, zda se mají vytisknout hodnoty přidružené k uzlu, pokud jsou hodnoty uzlu v modelu trvalé. Platí výchozí hodnota.printMetadata
: určuje, zda se mají vytisknout metadata (název uzlu, dimenze atd.) přidružená k uzlu. Platí výchozí hodnota.
WriteWordAndClass – příkaz (zastaralé)
Tento příkaz přečte textová trénovací data, spočítá počet výskytů každého slova v trénovací sadě, seřadí slova v sestupném pořadí počtu, dává každému slovu jedinečné ID, přiřadí každé slovo ke třídě a vygeneruje čtyři sloupcový slovníkový soubor a soubor mapování slov na ID, který se má použít (zastaralé) LMSequenceReader k trénování jazykových modelů založených na třídách. Související parametry jsou:
inputFile
: cesta k textovému trénovacímu souboru.outputVocabFile
: název vygenerovaného souboru slovníku se čtyřmi sloupci. První sloupec je ID slova, druhý sloupec je počet slov, třetí sloupec je slovo a čtvrtý sloupec je ID třídy.outputWord2Cls
: cesta k vygenerovanému souboru mapování word-to-class.outputCls2Index
: cesta k vygenerovanému souboru mapování class-to-wordId.vocabSize
: požadovaná velikost slovníku.nbrClass
: požadovaný počet tříd.cutoff
: počet výstřižek. Pokud je počet slov pod nebo rovno této hodnotě, bude slovo považováno za . Výchozí hodnota je 2. Všimněte si, že tento parametr se používá pouze v případě, že požadovaná velikost slovníku je větší než skutečný počet slov v trénovací sadě.
CreateLabelMap – příkaz
Často je snadné ručně vytvořit soubor mapování popisků. Někdy byste ale raději měli soubor mapování popisků vygenerovaný automaticky, což je účel příkazu CreateLabelMap. V současné době UCIFastReader je jediným čtenářem, který tuto akci podporuje. Související parametry jsou
section
: název bloku parametru (obvykle blok trénování), který obsahuje dílčí blok čtenáře, který se použije k vygenerování souboru mapování popisků. Vygenerovaný soubor mapování popisků se uloží do souboru labelMappingFile zadaného v dílčím bloku čtenáře tohoto bloku parametrů.minibatchSize
: velikost minibatchu, která se má použít při vytváření souboru mapování popisků.
DoEncoderDecoder – příkaz
Neurální sítě lze použít k vytvoření řetězce sítí. První několik sítí může fungovat jako kodéry a následující sítě můžou sloužit jako dekodéry. Speciální uzel PairNetworkNode se používá v každé síti k poskytování soketu, který bude připojen jinými sítěmi. Související parametry jsou
section
: kodérReader a dekoderReader jsou čtečky kodéru a dekodéru. Podobně pro kodérCVReader a decoderCVReader pro ověřovací sadu.encoderNetworkBuilder
adecoderNetworkBuilder
: Určuje jednoduchý tvůrce sítě, který se má použít.
BNStat – příkaz
Vyhodnocení střední hodnoty a odchylky vyhodnocení a testování datové sady pro uzel normalizace dávky je složité. I když je možné střední hodnotu a odchylku vypočítat pomocí průběžného průměru nebo exp během trénování, stále máme tendenci poskytovat stabilní a robustnější metodu pro generování střední hodnoty a odchylky dávkové normalizace – statistiky normalizace po dávkách. Příkaz se musí volat po trénování. Vygeneruje střední a rozptyl pro každou vrstvu BN.
modelPath
: cesta k souboru modelu obsahujícímu natrénovaný modelminibatchSize
: minimální velikost dávky při vyhodnocování, stejná s trénovací minibatchSizeitersPerNode
: iterace statistik pro každý uzel normalizace dávekreader
: blok konfigurace čtečky pro čtení testovacích dat. Podrobnosti najdete v bloku čtenáře.enableDistributedMBReading
: distribuované čtení v paralelním trénování