Leitor de sequência de LU do BrainScript
Observação: se você for um recém-chegado, considere usar CNTK Leitor de Formato de Texto. No futuro, LUSequenceReader será preterido e, eventualmente, não terá suporte.
LUSequenceReader é semelhante ao LMSequenceReader. No entanto, ele é usado para tarefas de reconhecimento vocal que têm cadeias de caracteres de entrada e saída diferentes. Um exemplo de configuração do LUSequenceReader é o seguinte
reader = [
readerType = "LUSequenceReader"
randomize = "none"
wordContext = 0:1:2
nbrUttsInEachRecurrentIter = 10
unk = "<unk>"
wordMap = "$DataDir$\inputmap.txt"
file = "$DataDir$\atis.train.IOB"
labelIn = [
useWordMap = true
beginSequence = "BOS"
endSequence = "EOS"
token = "$DataDir$\input.txt"
]
labels = [
beginSequence = "O"
endSequence = "O"
token = "$DataDir$\output.txt"
]
]
O LUSequenceReader tem os seguintes parâmetros:
wordContext
: isso especifica uma janela de contexto. Por exemplo,wordContext=0:1:2
especifica uma janela de contexto 3. Nesta janela de contexto, ele lê a entrada em um momento atual, na próxima vez e na hora após a próxima vez. Outro exemplo seriawordContext=0:-1
. Nesse caso, LUSequencReader lê uma janela de contexto 2 que consiste na entrada atual e na última entrada imediata.randomize
: é ouNone
Auto
. Isso especifica o modo de fazer a randomização da sentença de todo o corpus.nbrUttsInEachRecurrentIter
: especifica o limite do número de frases em uma minibatch. O leitor organiza frases de entrada de mesmo comprimento, até o limite especificado, em cada minibatch. Para redes recorrentes, o treinador redefine atividades de camada oculta somente no início das frases. As atividades de camadas ocultas serão levadas para a próxima minibatch se o fim da sentença não for atingido. O uso de várias frases em uma minibatch pode acelerar os processos de treinamento.unk
: especifica o símbolo para representar símbolos de entrada não vistos. Normalmente, esse símbolo é "".wordMap
: especifica um arquivo que mapeia entradas para outras entradas. Isso será útil se o usuário quiser mapear algumas entradas para símbolos desconhecidos. Um exemplo do arquivo de mapeamento de palavras é o seguinte:buy buy
trans <unk>
file
: o arquivo contém entrada e seus rótulos. A última coluna é o rótulo e as outras colunas contêm entradas. Um exemplo de arquivo de treinamento está abaixo.BOS O
flight O
from O
charlotte B-fromloc.city_name
to O
las B-toloc.city_name
vegas I-toloc.city_name
EOS O
No exemplo acima, você também pode observar dois subconjuntos nomeados labelIn
e labels
.
labelIn
: a seção do rótulo de entrada. Ele contém as configurações a seguiruseWordMap
–true
oufalse
, especifica se usar o mapa de palavras para mapear palavras de entrada para outras palavras de entrada.beginSequence
– o símbolo de início da fraseendSequence
– o símbolo final da frasetoken
– o arquivo de token contém uma lista de palavras de entrada. Suas ordens não são importantes.
labels
: a seção do rótulo de saída.token
– o arquivo de token contém uma lista de rótulos de saída. Sua ordem não é importante desde que os tokens sejam exclusivos.