Dela via


Toppnivåkommandon med BrainScript

Huvudkommandot train på den översta nivån ochtesteval/beskrivs på sidan Träna, Testa, Eval. Ytterligare kommandon på toppnivå 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 är mycket likt tågkommandot, förutom att det innehåller ytterligare två parametrar:

  • originalModelFileName: filnamnet på modellen som ska anpassas.

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

CV

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 3 heltal som identifierar startepoken, epokökningen och den slutliga epok som ska utvärderas. 3:2:9 innebär till exempel 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 frekvent.

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: minibatchstorleken 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 skrivaren 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 främsta motivationen är att räkna in en viktmatris med två matriser med lägre rang för att förbättra slutsatsdragningshastigheten, samtidigt som noggrannheten bevaras. Exempel:

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

De associerade parameterblocken är:

  • modelPath: anger var den ursprungliga 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 grupper av noder. 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-upplösning (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 noderna 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 den 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 sparas i modellen. Standardvärdet är true.

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

WriteWordAndClass-kommandot (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 ord-till-id-mappningsfil med fyra kolumner 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 class-to-wordId.

  • vocabSize: önskad vokabulärstorlek.

  • nbrClass: önskat antal klasser.

  • cutoff: antal brytningar. När ett ords antal är lägre än eller lika med det här värdet behandlas ordet som . 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 i träningsuppsättningen.

CreateLabelMap-kommando

Ofta är det enkelt att manuellt skapa etikettmappningsfilen. 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: parameterblockets namn (vanligtvis ett tågblock) som har läsarens underblock som ska användas för att generera etikettmappningsfilen. Den genererade etikettmappningsfilen 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 flera 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 kodarenCVReader och decoderCVReader för valideringsuppsättningen.

  • 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 mer stabil och robust 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 den tränade modellen
  • minibatchSize: minibatchstorleken vid utvärdering, samma med minibatchSize för träning
  • itersPerNode: statistikiterationerna 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