[解決済み] Kerasにおける多対一および多対多のLSTMの例
質問
私はLSTMとそれをKerasで構築する方法について理解しようとしています。RNNを実行するには、主に4つのモードがあることがわかりました(写真の右4つ)。
画像の出典はこちら アンドレイ・カルパシー
さて、それぞれの最小限のコードスニペットは、Kerasではどのように見えるのでしょう。 つまり、以下のようなものです。
model = Sequential()
model.add(LSTM(128, input_shape=(timesteps, data_dim)))
model.add(Dense(1))
を4つのタスクのそれぞれについて、たぶん少し説明を加えてください。
どのように解決するのか?
だから
-
1対1 : を使用することができます。
Dense
レイヤーは、シーケンスを処理しないのでmodel.add(Dense(output_size, input_shape=input_shape))
-
一対多 でモデルを連結するのはあまり簡単ではないので、このオプションはあまりサポートされていません。
Keras
そのため、以下のバージョンが最も簡単なものとなっています。model.add(RepeatVector(number_of_times, input_shape=input_shape)) model.add(LSTM(output_size, return_sequences=True))
-
多対一 : 実は、あなたのコードスニペットは、このアプローチの(ほぼ)例なのです。
model = Sequential() model.add(LSTM(1, input_shape=(timesteps, data_dim)))
-
多対多 : 入力と出力の長さがリカレントステップの数に一致する場合、このスニペットが最も簡単です。
model = Sequential() model.add(LSTM(1, input_shape=(timesteps, data_dim), return_sequences=True))
-
ステップ数と入出力長に差がある場合の多対多の対応 Keras では、これが異常に難しいんです。これをコード化する簡単なコードスニペットはありません。
編集部:広告5
最近のあるアプリケーションで、次のようなものを実装しました。 多対多 4枚目の画像から 因みに、以下のようなアーキテクチャのネットワークを持ちたい場合(入力が出力より長い場合)。
O O O
| | |
O O O O O O
| | | | | |
O O O O O O
次のような方法で実現できます。
model = Sequential()
model.add(LSTM(1, input_shape=(timesteps, data_dim), return_sequences=True))
model.add(Lambda(lambda x: x[:, -N:, :])) #Select last N from output
ここで
N
はカバーしたい最後のステップの数です(画像上の
N = 3
).
になるここから。
O O O
| | |
O O O O O O
| | |
O O O
は、長さの人工的なパディング列と同じくらい単純です。
N
を使って、例えば
0
ベクターを使って、適切なサイズに調整することができます。
関連
-
[解決済み] コスト関数、線形回帰、シータをハードコーディングしないようにする。オクターブ
-
[解決済み] tf.reset_default_graph() の使用方法
-
[解決済み] kerasのtrain_on_batch()の使い道は?
-
[解決済み] サポートベクターマシンに対する人工ニューラルネットワークの優位性は何ですか?[終了しました]
-
[解決済み] KerasのLSTMを理解する
-
[解決済み] Kerasの入力説明:input_shape, units, batch_size, dim, etc.
-
[解決済み】教師あり学習と教師なし学習の違いは何ですか?[終了しました]
-
[解決済み] なぜ人工ニューラルネットワークの入力を正規化する必要があるのですか?[クローズド]
-
[解決済み] Diablo 2をプレイするための人工ニューラルネットワークを視覚的に学習させる方法とは?
-
[解決済み] Appleはどのように電子メールの日付、時間、アドレスを見つけるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TensorFlowでtf.gradientsが動作する方法
-
[解決済み] PyTorchのバックワード関数
-
[解決済み] RuntimeError: 次元が範囲外([-1, 0]の範囲にあると期待されたが、1が得られた)
-
[解決済み] エアフローとKubeflowパイプラインの違いは何ですか?
-
[解決済み】同じ問題で binary_crossentropy と categorical_crossentropy が異なる性能を示すのはなぜか?
-
[解決済み】教師あり学習と教師なし学習の違いは何ですか?[終了しました]
-
[解決済み】機械学習モデルの損失と精度の解釈の仕方【終了しました
-
[解決済み] なぜ人工ニューラルネットワークの入力を正規化する必要があるのですか?[クローズド]
-
[解決済み] Appleはどのように電子メールの日付、時間、アドレスを見つけるのですか?
-
[解決済み] 期待値最大化手法の直感的な説明とは?[クローズド]