Toppnivåkommandon med BrainScript

Huvudkommandot train på den översta nivån ochtesteval/beskrivs på sidan Träna, Testa, Eval. Ytterligare kommandon på den översta nivån beskrivs nedan.

Anpassa kommando

Det här kommandot anpassar en redan tränad modell med hjälp av KL-avvikande regularisering. Vi rekommenderar att alla andra anpassningar utförs med hjälp av modellredigering. Adapt-kommandot liknar träningskommandot, förutom att det har ytterligare två parametrar:

  • originalModelFileName: filnamnet på den modell som ska anpassas.

  • refNodeName: namnet på noden i det beräkningsnätverk som ska användas för KL-avvikande regularisering.

meritförteckning

Det här kommandot utvärderar en serie modeller från olika epoker i en utvecklingsuppsättning (eller korsvalidering) och visar information om den bästa modellen. Förutom de parametrar som används för testkommandot använder det här kommandot även parametrarna

  • crossValidationInterval: matrisen med tre heltal som identifierar startepoken, epoksteget och den sista epoken som ska utvärderas. Till exempel innebär 3:2:9 att modellerna 3,5,7 och 9 utvärderas.

  • sleepTimeBetweenRuns: hur många sekunder du ska vänta mellan körningarna. Detta behövs bara om din GPU är för varm.

Skrivkommando

Det här kommandot skriver värdet för en utdatanod till en fil. De relaterade parametrarna är

  • reader: läsarkonfigurationsblocket för att läsa indata.

  • writer: skrivkonfigurationsblocket för att avgöra hur utdata ska skrivas. Om det här värdet inte anges används parametern outputPath.

  • minibatchSize: den minibatchstorlek som ska användas vid läsning och bearbetning av datamängden.

  • epochSize: storleken på datauppsättningen. Standardvärdet är 0. Hela datamängden utvärderas om den är inställd på 0.

  • modelPath: sökvägen till modellen som ska användas för att beräkna utdata.

  • outputPath: sökvägen till filen för att skriva utdata i ett textformat. Om skrivblocket finns ignoreras den här parametern. Antingen outputPath eller skrivare måste finnas.

  • outputNodeNames: en matris med ett eller flera utdatanodnamn som ska skrivas till en fil.

Redigera kommando

Det här kommandot redigerar en modell och sparar den ändrade modellen i filen. Detta är inaktuellt. De associerade parametrarna är:

  • editPath: sökvägen till MEL-skriptet som ska köras.
  • ndlMacros: sökvägen till NDL-makrofilen som ska läsas in och användas i MEL-skriptet.

SVD-kommando

Det här kommandot utför lågrankad uppskattning med SVD-nedbrytning av inlärbara parametrar. Den primära motivationen är att faktorisera en viktmatris med två matriser med lägre rang för att förbättra slutsatsdragningshastigheten, samtidigt som noggrannheten bevaras. Ett exempel:

svd = [
    action = "SVD"
    modelPath = "train\lstm.model.67"
    outputModelPath = "train\lstm.model.svd"
    SVDConfig = "nodeConfigs"
]

De associerade parameterblocken är:

  • modelPath: anger var den inledande modellen ska läsas in.

  • outputModelPath: anger var den reviderade modellen ska sparas.

  • SVDConfig: en konfigurationsfil som anger hur SVD utförs för olika nodgrupper. Den här konfigurationen är i tvåkolumnsformat:

    <NodeNameRegex> <float>

Den första kolumnen är ett reguljärt uttryck som matchar nodnamnet i en grupp. Den andra kolumnen är en flyttal som anger vilken procentandel av SVDenergy som ska behållas efter SVD, där SVD-energi definieras som summan av singularvärden. Till exempel konfigurationen

`LSTMoutput[1-3].Wx[ifco] 0.4`
`LSTMoutput[1-3].Wh[ifco] 0.6`

orsakar en mer aggressiv SVD-nedbrytning (0.4) för icke-återkommande anslutningar (från x till i,f,c,o-portar) i LSTM och mindre aggressiv SVD-nedbrytning för återkommande anslutningar (från h till i,f,c,o-portar), där parameternamnen definieras i NDL.

Dumpnode-kommando

Det här kommandot dumpar informationen om noder till en utdatafil, vilket också kan utföras i MEL med större kontroll. De relaterade parametrarna är:

  • modelPath: sökvägen till modellfilen som innehåller de noder som ska dumpas.

  • nodeName: namnet på noden som ska skrivas till en fil. Om inte anges dumpas alla noder.

  • nodeNameRegex: det reguljära uttrycket för namnen på noderna som ska skrivas till en fil. Om det anges ignoreras parametern nodeName .

  • outputFile: sökvägen till utdatafilen. Om inget anges genereras ett filnamn automatiskt baserat på modelPath.

  • printValues: avgör om värdena som är associerade med en nod ska skrivas ut om nodens värden bevaras i modellen. Standardvärdet är sant.

  • printMetadata: avgör om metadata (nodnamn, dimensioner osv.) som är associerade med en nod ska skrivas ut. Standardvärdet är sant.

WriteWordAndClass-kommando (inaktuellt)

Det här kommandot läser textträningsdata, räknar antalet förekomster av varje ord i träningsuppsättningen, sorterar orden i fallande ordning för antalet, ger varje ord ett unikt ID, tilldelar varje ord till en klass och genererar en ordförrådsfil med fyra kolumner och en ord-to-id mappningsfil som ska användas av (inaktuell) LMSequenceReader för att träna klassbaserade språkmodeller. De relaterade parametrarna är:

  • inputFile: sökvägen till textträningsfilen.

  • outputVocabFile: namnet på den genererade ordförrådsfilen med fyra kolumner. Den första kolumnen är ordet ID, den andra kolumnen är antalet ord, den tredje kolumnen är ordet och den fjärde kolumnen är klass-ID.

  • outputWord2Cls: sökvägen till den genererade word-to-class-mappningsfilen.

  • outputCls2Index: sökvägen till den genererade mappningsfilen klass-till-wordId.

  • vocabSize: önskad vokabulärstorlek.

  • nbrClass: önskat antal klasser.

  • cutoff: antal brytpunkt. När ett ords antal är lägre än eller lika med det här värdet behandlas ordet som <sjunkit>. Standardvärdet är 2. Observera att den här parametern endast används om den önskade ordförrådsstorleken är större än det faktiska antalet ord som finns i träningsuppsättningen.

CreateLabelMap-kommando

Ofta är det enkelt att skapa etikettmappningsfilen manuellt. Ibland vill du dock att etikettmappningsfilen ska genereras automatiskt, vilket är syftet med kommandot CreateLabelMap. För närvarande är UCIFastReader den enda läsaren som stöder den här åtgärden. De relaterade parametrarna är

  • section: parameterblocknamnet (vanligtvis ett träningsblock) som har läsarens underblock som ska användas för att generera etikettmappningsfilen. Den genererade mappningsfilen för etiketter sparas i etikettenMappingFile som anges i läsarunderblocket i det här parameterblocket.

  • minibatchSize: den minibatchstorlek som ska användas när du skapar etikettmappningsfilen.

DoEncoderDecoder-kommando

Neurala nätverk kan användas för att bilda en kedja av nätverk. De första nätverken kan fungera som kodare och följande nätverk kan fungera som avkodare. En särskild nod, PairNetworkNode, används i varje nätverk för att hantera en socket som ska anslutas av andra nätverk. De relaterade parametrarna är

  • section: kodarenReader och decoderReader är läsare för kodare och avkodare. På samma sätt för encoderCVReader och decoderCVReader för valideringsuppsättning.

  • encoderNetworkBuilder och decoderNetworkBuilder: Dessa anger den enkla nätverksbyggaren som ska användas.

BNStat-kommando

Det är svårt att utvärdera medelvärdet och variansen för att utvärdera och testa datauppsättningen för batchnormaliseringsnoden. Även om medelvärdet och variansen kan beräknas via löpande medelvärde eller exp under träning, tenderar vi fortfarande att tillhandahålla en stabilare och stabilare metod för att generera medelvärdet och variansen för batchnormalisering – statistik efter batchnormalisering. Kommandot måste anropas efter träningen. Det genererar medelvärdet och variansen för varje BN-lager.

  • modelPath: sökvägen till modellfilen som innehåller tränad modell
  • minibatchSize: mini-batchstorleken vid utvärdering, samma med träningsminibatchSize
  • itersPerNode: statistik-iterationerna för varje batchnormaliseringsnod
  • reader: läsarkonfigurationsblocket för att läsa testdata. Mer information finns i Läsarblock
  • enableDistributedMBReading: distribuerad läsning i parallell träning