1

シーケンス分類のための LSTM ニューラル ネットワークの実装に取り​​組んでいます。次のパラメータを使用してネットワークを設計したいと考えています。

  1. 入力 :n one-hot ベクトルのシーケンス。
  2. ネットワーク トポロジ : 2 層 LSTM ネットワーク。
  3. 出力:与えられたシーケンスがクラスに属する確率 (バイナリ分類)。2 番目の LSTM レイヤーからの最後の出力のみを考慮したいと考えています。

CNTK でそれを実装する必要がありますが、ドキュメントがあまりよく書かれていないため苦労しています。誰かがそれを手伝ってくれますか?

4

4 に答える 4

6

探しているものに正確に従うシーケンス分類の例があります。

唯一の違いは、単一の LSTM レイヤーのみを使用することです。次のように変更することで、このネットワークを複数のレイヤーを使用するように簡単に変更できます。

LSTM_function = LSTMP_component_with_self_stabilization(
    embedding_function.output, LSTM_dim, cell_dim)[0]

に:

num_layers = 2 # for example
encoder_output = embedding_function.output
for i in range(0, num_layers):
    encoder_output = LSTMP_component_with_self_stabilization(encoder_output.output, LSTM_dim, cell_dim)

ただし、新しいレイヤー ライブラリを使用したほうがよいでしょう。次に、これを簡単に行うことができます:

encoder_output = Stabilizer()(input_sequence)
for i in range(0, num_layers):
    encoder_output = Recurrence(LSTM(hidden_dim)) (encoder_output.output)

次に、高密度の出力レイヤーに入れる最終出力を取得するには、最初に次の操作を実行できます。

final_output = sequence.last(encoder_output)

その後

z = Dense(vocab_dim) (final_output)
于 2016-11-15T15:24:33.257 に答える
2

ここでは、次のようなレイヤーを追加するだけで、簡単なアプローチを見つけることができます。

Sequential([
        Recurrence(LSTM(hidden_dim), go_backwards=False),
        Recurrence(LSTM(hidden_dim), go_backwards=False),
        Dense(label_dim, activation=sigmoid)
    ])

トレーニング、テスト、適用...

于 2017-01-23T18:48:08.890 に答える