Nested differentiation of closures yields incorrect results. Any news on the fix?
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- julia
- Lĩnh vực
- machine-learning
Hướng nghiên cứu
Bắt đầu với trang giới hạn ReverseDiff được liên kết, issue #222 và cuộc thảo luận trên Julia Discourse về ReverseDiff-over-ForwardDiff với các mạng Lux. Truy tìm các trường hợp nested-closure, slightly incorrect-gradient và zero-gradient đã được báo cáo; công việc được xem là hoàn tất khi đã xác định được nguyên nhân gốc và hướng khắc phục cụ thể, đồng thời có thể xác thực các hành vi bị ảnh hưởng.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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?
- Ngôn ngữ chính
- Julia
- Star
- 397
- Fork
- 62
- Merge trung bình
- 8 giờ 9 phút
- Pull request đã merge (30 ngày)
- 4
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của JuliaDiff/ReverseDiff.jl
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
JuliaDiff/ReverseDiff.jl#318 ·
-
`@grad`/`@grad_from_chainrules` silently reuse a tangent if a pullback returns too few tangentsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
JuliaDiff/ReverseDiff.jl#315 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
JuliaDiff/ReverseDiff.jl#314 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 46/100
JuliaDiff/ReverseDiff.jl#327 · 2 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 56/100
JuliaDiff/ReverseDiff.jl#321 ·
Tất cả issue của JuliaDiff/ReverseDiff.jl
Issue tương tự
-
release preparation spack
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
Maintainer thường phản hồi trong vòng 1 ngày
-
30-minutes algorithm any-language codewars dart easy elixir hackerrank hacktoberfest haskell help wanted interview-prep julia leetcode lua open-source r scala students zig
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Huerte/algo-solutions-python#163 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
QuantumSavory/QuantumClifford.jl#853 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
JuliaPackaging/Yggdrasil#15441 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
JuliaSmoothOptimizers/Penelopt.jl#260 ·
Maintainer thường phản hồi trong vòng 1 ngày