Nested differentiation of closures yields incorrect results. Any news on the fix?
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- julia
調査の方向性
リンクされているReverseDiffの制限事項ページ、issue #222、およびLuxネットワークでのReverseDiff-over-ForwardDiffに関するJulia Discourseの議論から始めてください。報告されているnested-closure、slightly incorrect-gradient、zero-gradientのケースを追跡してください。根本原因と具体的な修正方針が特定され、影響を受ける挙動を検証できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Indeed, nested differentiation of closures has been a well known problem for quite some time . In multiple places it is mentioned that a fix is on the works. Are there any news on this front?
At this point, this limitation essentially precludes the implementation of PINNs with ReverseDiff . Perhaps even worse is that recently I've found for some destructured Flux and Lux models it is actually possible possible to do ReverseDiff-over-ForwardDiff and obtain somewhat accurate results, but the gradients are ever-so-slightly wrong (see this discussion on Julia's discourse and this other issue). Likewise, reverse-over-reverse returns a zero gradient.
Has the root cause of this been identified? Would a fix necessarily involve overhauling the library with a tagging system? Is ForwardDiff currently the only AD library that can do nested AD with closures?
- 主要言語
- Julia
- スター
- 396
- フォーク
- 61
- 平均マージ
- 23時間 18分
- マージ済み PR(30日)
- 16
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
JuliaDiff/ReverseDiff.jl のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
JuliaDiff/ReverseDiff.jl#318 ·
メンテナーはふだん 1 日以内に返信
-
`@grad`/`@grad_from_chainrules` silently reuse a tangent if a pullback returns too few tangentsオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
JuliaDiff/ReverseDiff.jl#315 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
JuliaDiff/ReverseDiff.jl#314 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 56/100
JuliaDiff/ReverseDiff.jl#321 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
JuliaDiff/ReverseDiff.jl#320 ·
メンテナーはふだん 1 日以内に返信
JuliaDiff/ReverseDiff.jl の issue をすべて見る
似ている issue
-
Chains resumed from `initial_state` take `num_warmup + 1` warm-up steps対応中かも @thevolatilebit が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 80/100
TuringLang/AbstractMCMC.jl#220 ·
-
found-by-agent
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
exanauts/SparseDirectSolver.jl#92 ·
メンテナーはふだん 1 日以内に返信
-
`inv` of a dense matrix fails for arrays whose `parent` is not an array of the same kind対応中かも @devmotion が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
JuliaLang/LinearAlgebra.jl#1740 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
NumericalEarth/Breeze.jl#1051 ·
メンテナーはふだん 1 日以内に返信