你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
BrainScript LU 序列读取器
注意:如果你是新用户,请考虑使用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
– 令牌文件包含输出标签的列表。 只要令牌是唯一的,它们的顺序就不重要。