Модуль чтения последовательности Lu BrainScript
Примечание. Если вы новичок, рассмотрите возможность использования CNTK средства чтения текстового формата. В будущем LUSequenceReader будет нерекомендуем и в конечном итоге не поддерживается.
LUSequenceReader похож на LMSequenceReader. Однако он используется для задач распознавания речи, которые имеют разные входные и выходные строки. Ниже приведен пример настройки LUSequenceReader.
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"
]
]
LuSequenceReader имеет следующие параметры:
wordContext
: указывает контекстное окно. Например,wordContext=0:1:2
указывает контекстное окно 3. В этом окне контекста он считывает входные данные в текущее время, в следующий раз и время после следующего. Еще один пример:wordContext=0:-1
. В таком случае LUSequencReader считывает контекстное окно 2, состоящее из текущих входных данных и непосредственных последних входных данных.randomize
: это либоNone
илиAuto
. Это указывает режим, в котором выполняется рандомизация предложения для всего корпуса.nbrUttsInEachRecurrentIter
: указывает ограничение количества предложений в мини-пакете. Модуль чтения упорядочивает входные предложения одинаковой длины до указанного предела в каждый мини-пакет. Для повторяющихся сетей тренер сбрасывает действия скрытого слоя только в начале предложений. Действия скрытых слоев переносятся на следующий мини-пакет, если конец предложения не достигнут. Использование нескольких предложений в мини-пакете может ускорить процессы обучения.unk
: указывает символ, представляющий невидимые входные символы. Обычно этот символ имеет значение "".wordMap
: указывает файл, который сопоставляет входные данные с другими входными данными. Это полезно, если пользователь хочет сопоставить некоторые входные данные с неизвестными символами. Ниже приведен пример файла сопоставления слов.buy buy
trans <unk>
file
: файл содержит входные данные и его метки. Последний столбец — метка, а другие столбцы содержат входные данные. Ниже приведен пример файла обучения.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
В приведенном выше примере также можно заметить два вложенных блока с именами labelIn
и labels
.
labelIn
: раздел для входной метки. Он содержит следующие настройки.useWordMap
—true
илиfalse
указывает, используется ли сопоставление слов для сопоставления входных слов с другими входными словами.beginSequence
— символ начала предложения.endSequence
— символ конца предложения.token
— файл токена содержит список входных слов. Их заказы не важны.
labels
: раздел для выходной метки.token
— файл токена содержит список выходных меток. Их порядок не важен, если маркеры являются уникальными.