問題タブ [pytorch-lightning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Pytorch(lightning)でTruncated Backpropagationを使用して非常に長いシーケンスでLSTMを実行するには?
フレームごとの分類のためにLSTMにフィードしたい非常に長い時系列があります。
私のデータはフレームごとにラベル付けされており、発生以来、分類に大きな影響を与えるいくつかのまれなイベントが発生することを知っています.
したがって、意味のある予測を得るには、シーケンス全体をフィードする必要があります。
非常に長いシーケンスを LSTM に入力するだけでは、通常の RNN と同様に勾配が消失または爆発するため、最適ではないことが知られています。
シーケンスをより短い (たとえば、100 の長さの) シーケンスにカットする単純な手法を使用し、それぞれで LSTM を実行してから、最終的な LSTM 非表示およびセル状態を次のフォワード パスの開始非表示およびセル状態として渡したいと思いました。 .
これは、まさにそれを行った人の例です。そこでは、「時間による切り捨てられた逆伝播」と呼ばれます。私は同じ作品を作ることができませんでした。
Pytorch ライトニングでの私の試み (無関係な部分を取り除いたもの):
このコードを実行すると、次のエラーが発生します。
追加しても同じことが起こります
使用するとエラーは発生しません
しかし、現在のフレームバッチからの出力が次のフレームバッチに転送されないため、明らかにこれは役に立ちません。
このエラーの原因は何ですか? h_n
出力を切り離すc_n
だけで十分だと思いました。
前のフレーム バッチの出力を次のフレーム バッチに渡し、各フレーム バッチを個別にトーチ バック プロパゲートするにはどうすればよいですか?
python - Pytorch Lightning を使用しているときにメトリクス (検証損失など) を TensorBoard に記録する方法は?
私は Pytorch Lightning を使用して (GPU デバイス上で DDP を使用して) モデルをトレーニングしており、TensorBoard は Lightning で使用されるデフォルトのロガーです。
私のコードは、トレーニングと検証の各ステップでそれぞれトレーニングと検証の損失を記録するように設定されています。
TensorBoard はタブにtrain_loss
とval_loss
チャートの両方を正しくプロットしSCALERS
ます。ただし、HPARAMS
左側のサイド バーのタブでは、 のhp_metric
下にしか表示されませんMetrics
。
ただし、HPARAMS
左側のサイド バーのタブでは、 のhp_metric
下にしか表示されませんMetrics
。
セクションにtrain_loss
とval_loss
を追加するにはどうすればよいですか? このようにして、 の代わりにMetrics
を使用できるようになります。val_loss
PARALLEL COORDINATES VIEW
hp_metric
Pytorch 1.8.1、Pytorch Lightning 1.2.6、TensorBoard 2.4.1 の使用