Comandi di primo livello con BrainScript
Il comando train
principale etest
eval
/sono descritti nella pagina Train, Test, Eval. Di seguito sono descritti altri comandi di primo livello.
Adatta comando
Questo comando adatta un modello già sottoposto a training usando la regolarizzazione della divergenza KL. Si consiglia di eseguire tutti gli altri adattamenti usando la modifica del modello. Il comando di adattamento è molto simile al comando di training, ad eccezione del fatto che contiene due altri parametri:
originalModelFileName
: il nome del file del modello che verrà adattato.refNodeName
: il nome del nodo nella rete di calcolo che verrà usato per la regolarizzazione della divergenza KL.
CV
Questo comando valuta una serie di modelli di epoche diverse in un set di sviluppo (o convalida incrociata) e visualizza le informazioni del modello migliore. Oltre ai parametri usati per il comando di test, questo comando usa anche i parametri
crossValidationInterval
: matrice di 3 interi che identificano l'epoca iniziale, l'incremento dell'epoca e l'epoca finale da valutare. Ad esempio, 3:2:9 significa che i modelli 3,5,7 e 9 verranno valutati.sleepTimeBetweenRuns
: quanti secondi attendere tra le esecuzioni. Questa operazione è necessaria solo se la GPU è troppo calda.
Comando di scrittura
Questo comando scrive il valore di un nodo di output in un file. I parametri correlati sono
reader
: blocco di configurazione lettore per leggere i dati di input.writer
: blocco di configurazione writer per determinare come scrivere i dati di output. Se questo valore non viene specificato, verrà usato il parametro outputPath.minibatchSize
: dimensioni minibatch da usare durante la lettura e l'elaborazione del set di dati.epochSize
: dimensione del set di dati. Il valore predefinito è 0. L'intero set di dati verrà valutato se è impostato su 0.modelPath
: percorso del modello da usare per calcolare l'output.outputPath
: percorso del file per scrivere l'output in un formato di testo. Se il blocco writer esiste questo parametro verrà ignorato. È necessario che outputPath o writer esistano.outputNodeNames
: matrice di uno o più nomi di nodi di output da scrivere in un file.
Modifica comando
Questo comando modifica un modello e salva il modello modificato in file. Deprecato. I parametri associati sono:
editPath
: percorso dello script MEL da eseguire.ndlMacros
: il percorso del file di macro NDL che verrà caricato e usato nello script MEL.
Comando SVD
Questo comando esegue l'approssimazione a basso rango con scomposizione SVD dei parametri imparabili. La motivazione primaria consiste nel fattorizzare una matrice di peso con due matrici di classificazione inferiore per migliorare la velocità di inferenza, mantenendo l'accuratezza. Ad esempio:
svd = [
action = "SVD"
modelPath = "train\lstm.model.67"
outputModelPath = "train\lstm.model.svd"
SVDConfig = "nodeConfigs"
]
I blocchi di parametri associati sono:
modelPath
: specifica dove caricare il modello iniziale.outputModelPath
: specifica dove salvare il modello modificato.SVDConfig
: un file di configurazione che specifica la modalità di esecuzione della SVD per gruppi diversi di nodi. Questa configurazione è in formato a due colonne:<NodeNameRegex> <float>
La prima colonna è un'espressione regolare che corrisponderà al nome del nodo in un gruppo. La seconda colonna è un float che indica quale percentuale di SVD energy verrà mantenuta dopo SVD, dove SVD-energy è definita come somma di valori singolari. Ad esempio, la configurazione
`LSTMoutput[1-3].Wx[ifco] 0.4`
`LSTMoutput[1-3].Wh[ifco] 0.6`
causerà una scomposizione SVD (0,4) più aggressiva per le connessioni non ricorrenti (da x a i,f,c,o gates) in LSTM e una scomposizione SVD meno aggressiva per le connessioni ricorrenti (da h a i,f,c,o gates), dove i nomi dei parametri sono definiti nel NDL.
Comando Dumpnode
Questo comando esegue il dump delle informazioni dei nodi in un file di output, che può essere eseguito anche in MEL con un maggiore controllo. I parametri correlati sono:
modelPath
: percorso del file di modello contenente i nodi da dump.nodeName
: nome del nodo da scrivere in un file. Se non viene specificato tutti i nodi verranno scaricati.nodeNameRegex
: espressione regolare per i nomi dei nodi da scrivere in un file. Se specificato, ilnodeName
parametro viene ignorato.outputFile
: percorso del file di output. Se non specificato un nome di file verrà generato automaticamente in base al modelPath.printValues
: determina se stampare i valori associati a un nodo se i valori del nodo vengono mantenuti nel modello. Il valore predefinito è true.printMetadata
: determina se stampare i metadati (nome del nodo, dimensioni e così via) associati a un nodo. Il valore predefinito è true.
Comando WriteWordAndClass (deprecato)
Questo comando legge i dati di training del testo, conta il numero di occorrenze di ogni parola del set di training, ordina le parole nell'ordine decrescente dei conteggi, assegna ogni parola a un ID univoco, assegna ogni parola a una classe e genera un file di vocabolario di quattro colonne e un file di mapping di parole-to-id da utilizzare da LMSequenceReader per eseguire il training dei modelli linguistici basati su classi. I parametri correlati sono:
inputFile
: percorso del file di training del testo.outputVocabFile
: nome del file vocabolario a quattro colonne generato. La prima colonna è l'ID parola, la seconda colonna è il conteggio della parola, la terza colonna è la parola e la quarta colonna è l'ID classe.outputWord2Cls
: percorso del file di mapping di word-to-class generato.outputCls2Index
: percorso del file di mapping classe-to-wordId generato.vocabSize
: le dimensioni desiderate del vocabolario.nbrClass
: numero desiderato di classi.cutoff
: conteggio del taglio. Quando il conteggio di una parola è inferiore o uguale a questo valore, la parola verrà considerata come . Il valore predefinito è 2. Si noti che questo parametro viene usato solo se la dimensione del vocabolario desiderata è maggiore del numero effettivo di parole presenti nel set di training.
Comando CreateLabelMap
Spesso è facile creare manualmente il file di mapping delle etichette. A volte, tuttavia, si preferisce avere il file di mapping delle etichette generato automaticamente, che è lo scopo del comando CreateLabelMap. Attualmente UCIFastReader è l'unico lettore che supporta questa azione. I parametri correlati sono
section
: il nome del blocco di parametri (in genere un blocco di training) che ha il sotto-blocco lettore che verrà usato per generare il file di mapping delle etichette. Il file di mapping delle etichette generato verrà salvato nell'etichettaMappingFile specificata nel blocco secondario lettore di questo blocco di parametri.minibatchSize
: le dimensioni minibatch da usare durante la creazione del file di mapping delle etichette.
Comando DoEncoderDecoder
Le reti neurali possono essere usate per formare una catena di reti. Le prime reti possono funzionare come codificatori e le reti seguenti possono fungere da decodificatori. Un nodo speciale, PairNetworkNode, viene usato in ogni rete per servire un socket da connettere da altre reti. I parametri correlati sono
section
: il codificatoreReader e decoderReader sono i lettori per codificatore e decodificatore. Analogamente per codificatoreCVReader e decoderCVReader per il set di convalida.encoderNetworkBuilder
edecoderNetworkBuilder
: specificare il semplice generatore di rete da usare.
Comando BNStat
La valutazione della media e della varianza della valutazione e del test del set di dati per il nodo di normalizzazione batch è difficile. Anche se la media e la varianza possono essere calcolate tramite l'esecuzione media o exp durante il training, si tende comunque a fornire un metodo più stabile e affidabile per generare la media e la varianza delle statistiche di normalizzazione batch - Post batch normalizzazione statistiche. Il comando deve essere chiamato dopo il training. Genererà la media e la varianza per ogni livello BN.
modelPath
: percorso del file di modello contenente il modello sottoposto a trainingminibatchSize
: le dimensioni mini-batch durante la valutazione, stesse con minibatchSize di trainingitersPerNode
: le iterazioni statistiche per ogni nodo di normalizzazione batchreader
: blocco di configurazione lettore per leggere i dati di test. Per informazioni dettagliate, vedere Blocco lettoreenableDistributedMBReading
: lettura distribuita in training parallelo