Leitor de sequências de cérebros LU
Nota: se for um recém-chegado, considere utilizar CNTK Leitor de Formato de Texto. No futuro, o LUSequenceReader será depreciado e eventualmente não suportado.
LuSequenceReader é semelhante ao LMSequenceReader. No entanto, é usado para tarefas de compreensão da linguagem que têm cadeias de entrada e saída que são diferentes. Um exemplo de configuração 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
: isto especifica uma janela de contexto. Por exemplo,wordContext=0:1:2
especifica uma janela de contexto de 3. Nesta janela de contexto, lê-se a entrada num momento atual, a próxima e a hora após a próxima. Outro exemplo seriawordContext=0:-1
. Neste caso, o LUSequencReader lê uma janela de contexto de 2 que consiste na entrada atual e na última entrada imediata.randomize
: é ouNone
Auto
. Isto especifica o modo de fazer a aleatoriedade da frase de todo o corpus.nbrUttsInEachRecurrentIter
: isto especifica o limite do número de frases numa minibatch. O leitor organiza frases de entrada de mesmo comprimento, até ao limite especificado, em cada minibatch. Para redes recorrentes, o treinador repõe as atividades de camadas ocultas apenas no início das frases. As atividades das camadas escondidas são levadas para a próxima minibatch se não for atingido um fim de frase. Usar várias frases numa minibatch pode acelerar os processos de treino.unk
: isto especifica o símbolo para representar símbolos de entrada invisíveis. Normalmente, este símbolo é "".wordMap
: isto especifica um ficheiro que mapeia entradas para outras entradas. Isto é útil se o utilizador quiser mapear algumas entradas para símbolos desconhecidos. Um exemplo do ficheiro de mapeamento de palavras é o seguinte:buy buy
trans <unk>
file
: o ficheiro contém entradas e as suas etiquetas. A última coluna é a etiqueta, e as outras colunas contêm entradas. Um exemplo de arquivo de treino 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, também pode notar dois sub-blocos nomeados labelIn
e labels
.
labelIn
: a secção para a etiqueta de entrada. Contém as seguintes configuraçõesuseWordMap
–true
oufalse
especifica se usar o mapa de palavras para mapear palavras de entrada para outras palavras de entrada.beginSequence
– o símbolo inicial da fraseendSequence
– o símbolo final da frasetoken
– o ficheiro simbólico contém uma lista de palavras de entrada. As ordens deles não são importantes.
labels
: a secção para a etiqueta de saída.token
– o ficheiro simbólico contém uma lista de etiquetas de saída. A ordem deles não é importante, desde que os tokens sejam únicos.