Compartilhar via


Comandos de nível superior com o BrainScript

O comando train principal de nível superior e eval/test são descritos na página Treinar, Testar e Eval . Outros comandos de nível superior são detalhados abaixo.

Comando Adapt

Esse comando adapta um modelo já treinado usando a regularização de divergência kl. É recomendável que todas as outras adaptações sejam executadas usando a edição de modelo. O comando adapte é muito semelhante ao comando de trem, exceto que ele carrega mais dois parâmetros:

  • originalModelFileName: o nome do arquivo do modelo que será adaptado.

  • refNodeName: o nome do nó na rede computacional que será usado para regularização de divergência kl.

CV

Esse comando avalia uma série de modelos de diferentes épocas em um conjunto de desenvolvimento (ou validação cruzada) e exibe as informações do melhor modelo. Além dos parâmetros usados para o comando de teste, esse comando também usa os parâmetros

  • crossValidationInterval: a matriz de três inteiros que identificam a época inicial, o incremento da época e a época final a serem avaliados. Por exemplo, 3:2:9 significa que os modelos 3,5,7 e 9 serão avaliados.

  • sleepTimeBetweenRuns: quantos segundos esperar entre as execuções. Isso só será necessário se a GPU estiver muito quente.

Comando Write

Esse comando grava o valor de um nó de saída em um arquivo. Os parâmetros relacionados são

  • reader: o bloco de configuração do leitor para ler os dados de entrada.

  • writer: o bloco de configuração do gravador para determinar como gravar os dados de saída. Se esse valor não for especificado, o parâmetro outputPath será usado.

  • minibatchSize: o tamanho da minibatch a ser usado ao ler e processar o conjunto de dados.

  • epochSize: o tamanho do conjunto de dados. O padrão é 0. Todo o conjunto de dados será avaliado se ele estiver definido como 0.

  • modelPath: o caminho para o modelo a ser usado para calcular a saída.

  • outputPath: o caminho para o arquivo para gravar a saída em um formato de texto. Se o bloco de gravador existir, esse parâmetro será ignorado. O outputPath ou o gravador devem existir.

  • outputNodeNames: uma matriz de um ou mais nomes de nó de saída a serem gravados em um arquivo.

Editar Comando

Esse comando edita um modelo e salva o modelo modificado no arquivo. Isso foi preterido. Os parâmetros associados são:

  • editPath: o caminho para o script MEL a ser executado.
  • ndlMacros: o caminho para o arquivo de macros NDL que será carregado e usado no script MEL.

Comando SVD

Esse comando conduz a aproximação de baixa classificação com decomposição SVD de parâmetros aprendizes. A principal motivação é fatorar uma matriz de peso com duas matrizes de classificação inferior para melhorar a velocidade de inferência, preservando a precisão. Por exemplo:

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

Os blocos de parâmetro associados são:

  • modelPath: especifica onde carregar o modelo inicial.

  • outputModelPath: especifica onde salvar o modelo revisado.

  • SVDConfig: um arquivo de configuração que especifica como o SVD é executado para diferentes grupos de nós. Essa configuração está em um formato de duas colunas:

    <NodeNameRegex> <float>

A primeira coluna é uma expressão regular que corresponderá ao nome do nó em um grupo. A segunda coluna é um float que indica qual porcentagem de SVDenergy será mantida após o SVD, em que a energia SVD é definida como a soma de valores singulares. Por exemplo, a configuração

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

causará uma decomposição mais agressiva de SVD (0,4) para as conexões não recorrentes (de portas x a i,f,c,o) em LSTM e decomposição de SVD menos agressiva para conexões recorrentes (de h a i,f,c,o portões), onde os nomes de parâmetro são definidos no NDL.

Comando Dumpnode

Esse comando despeja as informações de nós em um arquivo de saída, o que também pode ser feito em MEL com maior controle. Os parâmetros relacionados são:

  • modelPath: o caminho para o arquivo de modelo que contém os nós a serem despejados.

  • nodeName: o nome do nó a ser gravado em um arquivo. Se não for especificado, todos os nós serão despejados.

  • nodeNameRegex: a expressão regular para os nomes dos nós a serem gravados em um arquivo. Se especificado, o nodeName parâmetro será ignorado.

  • outputFile: o caminho para o arquivo de saída. Se não for especificado, um nome de arquivo será gerado automaticamente com base no modelPath.

  • printValues: determina se os valores associados a um nó devem ser impressos se os valores do nó forem persistidos no modelo. O padrão é true.

  • printMetadata: determina se os metadados (nome do nó, dimensões etc. ) devem ser impressos associados a um nó. O padrão é true.

Comando WriteWordAndClass (preterido)

Esse comando lê os dados de treinamento de texto, conta o número de ocorrências de cada palavra no conjunto de treinamento, classifica as palavras na ordem decrescente das contagens, fornece a cada palavra uma ID exclusiva, atribui cada palavra a uma classe e gera um arquivo de vocabulário de quatro colunas e um arquivo de mapeamento palavra a id a ser usado pelo LMSequenceReader (preterido) para treinar modelos de linguagem baseados em classe. Os parâmetros relacionados são:

  • inputFile: o caminho para o arquivo de treinamento de texto.

  • outputVocabFile: o nome do arquivo de vocabulário de quatro colunas gerado. A primeira coluna é a ID da palavra, a segunda coluna é a contagem da palavra, a terceira coluna é a palavra e a quarta coluna é a ID da classe.

  • outputWord2Cls: o caminho para o arquivo de mapeamento palavra a classe gerado.

  • outputCls2Index: o caminho para o arquivo de mapeamento classe a wordId gerado.

  • vocabSize: o tamanho desejado do vocabulário.

  • nbrClass: o número desejado de classes.

  • cutoff: a contagem de corte. Quando a contagem de uma palavra estiver abaixo ou igual a esse valor, a palavra será tratada como . O padrão é 2. Observe que esse parâmetro é usado somente se o tamanho do vocabulário desejado for maior do que o número real de palavras existentes no conjunto de treinamento.

Comando CreateLabelMap

Geralmente, é fácil criar manualmente o arquivo de mapeamento de rótulo. Às vezes, no entanto, você prefere ter o arquivo de mapeamento de rótulo gerado automaticamente, que é a finalidade do comando CreateLabelMap. Atualmente, UCIFastReader é o único leitor que dá suporte a essa ação. Os parâmetros relacionados são

  • section: o nome do bloco de parâmetro (geralmente um bloco de trem) que tem o subconjunto de leitor que será usado para gerar o arquivo de mapeamento de rótulo. O arquivo de mapeamento de rótulo gerado será salvo no labelMappingFile especificado no subconjunto do leitor desse bloco de parâmetros.

  • minibatchSize: o tamanho da minibatch a ser usado ao criar o arquivo de mapeamento de rótulo.

Comando DoEncoderDecoder

Redes neurais podem ser usadas para formar uma cadeia de redes. As primeiras várias redes podem funcionar como codificadores e as redes a seguir podem servir como decodificadores. Um nó especial, PairNetworkNode, é usado em cada rede para servir um soquete a ser conectado por outras redes. Os parâmetros relacionados são

  • section: o encoderReader e o decoderReader são os leitores para codificador e decodificador. Da mesma forma para o codificadorCVReader e o decoderCVReader para o conjunto de validação.

  • encoderNetworkBuilder e decoderNetworkBuilder: especificam o construtor de rede simples a ser usado.

Comando BNStat

Avaliar a média e a variação da avaliação e teste do conjunto de dados para o nó de normalização do lote é complicado. Embora a média e a variação possam ser calculadas por meio da média de execução ou exp durante o treinamento, ainda tendemos a fornecer um método mais estável e robusto para gerar a média e a variação da normalização do lote -- estatísticas de normalização pós-lote. O comando precisa ser chamado após o treinamento. Ele gerará a média e a variação para cada camada BN.

  • modelPath: o caminho para o arquivo de modelo que contém o modelo treinado
  • minibatchSize: o tamanho do mini-lote durante a avaliação, o mesmo com minibatchSize de treinamento
  • itersPerNode: as iterações de estatísticas para cada nó de normalização em lote
  • reader: o bloco de configuração do leitor para ler os dados de teste. Para obter detalhes, consulte o bloco Leitor
  • enableDistributedMBReading: leitura distribuída em treinamento paralelo