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 を指定します。 このコンテキスト ウィンドウでは、現在の時刻、次の時刻、および次回の後の時刻に入力を読み取ります。 もう 1 つの例は次のようになります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
上記の例では、2 つのサブブロックの名前と labels
.labelIn
labelIn
: 入力ラベルのセクション。 これには次のセットアップが含まれていますuseWordMap
またはtrue
false
、単語マップを使用して入力単語を他の入力単語にマップするかどうかを指定します。beginSequence
– 文の先頭の記号endSequence
– 文の終わりの記号token
– トークン ファイルには、入力単語の一覧が含まれています。 彼らの注文は重要ではありません。
labels
: 出力ラベルのセクション。token
– トークン ファイルには、出力ラベルの一覧が含まれています。 トークンが一意である限り、順序は重要ではありません。