Compartir a través de


Comandos de nivel superior con BrainScript

El comando train principal de nivel superior y eval/test se describen en la página Entrenar, Probar, Eval . A continuación se detallan más comandos de nivel superior.

Comando Adapt

Este comando adapta un modelo ya entrenado mediante la regularización de divergencia de KL. Se recomienda que todas las demás adaptaciones se realicen mediante la edición de modelos. El comando adapt es muy similar al comando train, salvo que lleva dos parámetros más:

  • originalModelFileName: el nombre de archivo del modelo que se adaptará.

  • refNodeName: el nombre del nodo de la red computacional que se usará para la regularización de divergencia de KL.

CV

Este comando evalúa una serie de modelos de diferentes épocas en un conjunto de desarrollo (o validación cruzada) y muestra la información del mejor modelo. Además de los parámetros usados para el comando de prueba, este comando también usa los parámetros.

  • crossValidationInterval: matriz de 3 enteros que identifican la época inicial, el incremento de época y la época final que se van a evaluar. Por ejemplo, 3:2:9 significa que se evaluarán los modelos 3,5,7 y 9.

  • sleepTimeBetweenRuns: cuántos segundos hay que esperar entre ejecuciones. Esto solo es necesario si la GPU es demasiado activa.

Comando Write

Este comando escribe el valor de un nodo de salida en un archivo. Los parámetros relacionados son

  • reader: bloque de configuración del lector para leer los datos de entrada.

  • writer: bloque de configuración del escritor para determinar cómo escribir los datos de salida. Si no se especifica este valor, se usará el parámetro outputPath.

  • minibatchSize: tamaño de minibatch que se va a usar al leer y procesar el conjunto de datos.

  • epochSize: el tamaño del conjunto de datos. El valor predeterminado es 0. Se evaluará todo el conjunto de datos si está establecido en 0.

  • modelPath: ruta de acceso al modelo que se va a usar para calcular la salida.

  • outputPath: la ruta de acceso al archivo para escribir la salida en un formato de texto. Si el bloque writer existe, este parámetro se omitirá. OutputPath o writer deben existir.

  • outputNodeNames: matriz de uno o varios nombres de nodo de salida que se van a escribir en un archivo.

Editar comando

Este comando edita un modelo y guarda el modelo modificado en el archivo. Esto está en desuso. Los parámetros asociados son:

  • editPath: ruta de acceso al script MEL que se va a ejecutar.
  • ndlMacros: la ruta de acceso al archivo de macros NDL que se cargará y se usará en el script MEL.

Comando SVD

Este comando lleva a cabo una aproximación de rango bajo con la descomposición SVD de parámetros aprendibles. La motivación principal es factorizar una matriz de peso con dos matrices de clasificación inferior para mejorar la velocidad de inferencia, a la vez que se conserva la precisión. Por ejemplo:

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

Los bloques de parámetros asociados son:

  • modelPath: especifica dónde cargar el modelo inicial.

  • outputModelPath: especifica dónde guardar el modelo revisado.

  • SVDConfig: un archivo de configuración que especifica cómo se realiza el SVD para distintos grupos de nodos. Esta configuración tiene un formato de dos columnas:

    <NodeNameRegex> <float>

La primera columna es una expresión regular que coincidirá con el nombre del nodo en un grupo. La segunda columna es un float que indica qué porcentaje de SVDenergy se mantendrá después de SVD, donde la energía SVD se define como la suma de valores singulares. Por ejemplo, la configuración

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

provocará una descomposición svD más agresiva (0,4) para las conexiones no recurrentes (de x a i,f,c,o gates) en LSTM y una descomposición SVD menos agresiva para las conexiones recurrentes (de h a i,f,c,o gates), donde los nombres de parámetro se definen en el NDL.

Comando Dumpnode

Este comando volca la información de los nodos en un archivo de salida, que también se puede realizar en MEL con un mayor control. Los parámetros relacionados son:

  • modelPath: la ruta de acceso al archivo de modelo que contiene los nodos que se van a volcar.

  • nodeName: el nombre del nodo que se va a escribir en un archivo. Si no se especifican todos los nodos se volcarán.

  • nodeNameRegex: expresión regular para los nombres de los nodos que se van a escribir en un archivo. Si se especifica, se omite el nodeName parámetro .

  • outputFile: la ruta de acceso al archivo de salida. Si no se especifica un nombre de archivo, se generará automáticamente en función de modelPath.

  • printValues: determina si se imprimen los valores asociados a un nodo si los valores del nodo se conservan en el modelo. El valor predeterminado es true.

  • printMetadata: determina si se imprimen los metadatos (nombre del nodo, dimensiones, etc.) asociados a un nodo. El valor predeterminado es true.

Comando WriteWordAndClass (en desuso)

Este comando lee los datos de entrenamiento de texto, cuenta el número de repeticiones de cada palabra del conjunto de entrenamiento, ordena las palabras en el orden descendente de los recuentos, proporciona a cada palabra un identificador único, asigna cada palabra a una clase y genera un archivo de vocabulario de cuatro columnas y un archivo de asignación de palabra a id que el LMSequenceReader (en desuso) usará para entrenar modelos de lenguaje basados en clases. Los parámetros relacionados son:

  • inputFile: la ruta de acceso al archivo de entrenamiento de texto.

  • outputVocabFile: el nombre del archivo de vocabulario de cuatro columnas generado. La primera columna es el identificador de palabra, la segunda columna es el recuento de la palabra, la tercera columna es la palabra y la cuarta columna es el identificador de clase.

  • outputWord2Cls: la ruta de acceso al archivo de asignación de palabra a clase generado.

  • outputCls2Index: ruta de acceso al archivo de asignación de clase a wordId generado.

  • vocabSize: el tamaño de vocabulario deseado.

  • nbrClass: el número deseado de clases.

  • cutoff: recuento de límites. Cuando el recuento de una palabra es inferior o igual a este valor, la palabra se tratará como . El valor predeterminado es 2. Tenga en cuenta que este parámetro solo se usa si el tamaño de vocabulario deseado es mayor que el número real de palabras existentes en el conjunto de entrenamiento.

CreateLabelMap (comando)

A menudo es fácil crear manualmente el archivo de asignación de etiquetas. A veces, sin embargo, prefiere que el archivo de asignación de etiquetas se genere automáticamente, que es el propósito del comando CreateLabelMap. Actualmente UCIFastReader es el único lector que admite esta acción. Los parámetros relacionados son

  • section: el nombre del bloque de parámetros (normalmente un bloque de entrenamiento) que tiene el subproceso lector que se usará para generar el archivo de asignación de etiquetas. El archivo de asignación de etiquetas generado se guardará en el archivo labelMappingFile especificado en el subcomando lector de este bloque de parámetros.

  • minibatchSize: tamaño de minibatch que se va a usar al crear el archivo de asignación de etiquetas.

Comando DoEncoderDecoder

Las redes neuronales se pueden usar para formar una cadena de redes. Las primeras redes pueden funcionar como codificadores y las siguientes redes pueden servir como descodificadores. Un nodo especial, PairNetworkNode, se usa en cada red para proporcionar un socket que otras redes conecten. Los parámetros relacionados son

  • section: encoderReader y decoderReader son los lectores para el codificador y descodificador. De forma similar para encoderCVReader y decoderCVReader para el conjunto de validación.

  • encoderNetworkBuilder y decoderNetworkBuilder: especifican el generador de red simple que se va a usar.

BNStat (comando)

Evaluar la media y la varianza de evaluar y probar el conjunto de datos para el nodo de normalización por lotes es complicado. Aunque la media y la varianza se pueden calcular a través del promedio de ejecución o exp durante el entrenamiento, seguimos proporcionando un método más estable y sólido para generar la media y la varianza de la normalización por lotes: estadísticas posteriores a la normalización por lotes. El comando debe llamarse después del entrenamiento. Generará la media y la varianza para cada capa BN.

  • modelPath: la ruta de acceso al archivo de modelo que contiene el modelo entrenado.
  • minibatchSize: tamaño de minilote mientras se evalúa, igual que con minibatchSize de entrenamiento.
  • itersPerNode: las iteraciones de estadísticas de cada nodo de normalización por lotes
  • reader: bloque de configuración del lector para leer los datos de prueba. Para más información, consulte Bloque lector.
  • enableDistributedMBReading: lectura distribuida en el entrenamiento paralelo