No rule for Base.Intrinsics.sqrt_llvm
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- julia
- Ambito
- machine-learning
Direzione di ricerca
Inizia individuando la @scalar_rule esistente di Base.sqrt in ChainRules.jl e verifica come sono organizzate le regole per Base.Intrinsics. Aggiungi quindi la regola sqrt_llvm corrispondente, poi esegui la riproduzione di NaNMath.sqrt e verifica la concordanza con ForwardDiff e Base.sqrt per Float16, Float32, Float64, 0, 4 e Inf.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Reverse-mode AD stops on anything reaching Base.Intrinsics.sqrt_llvm, the same way #498 reported for copysign_float:
julia> using NaNMath, Zygote
julia> Zygote.gradient(NaNMath.sqrt, 0.3)
ERROR: Compiling Tuple{typeof(NaNMath.sqrt), Float64}: Non-differentiable
function Core.Intrinsics.sqrt_llvm
The rule is the one Base.sqrt already has here:
@scalar_rule Base.Intrinsics.sqrt_llvm(x) inv(2Ω)
With that defined, Zygote agrees with ForwardDiff on Float16, Float32 and Float64,
and the pullback matches Base.sqrt at 0, 4 and Inf.
This is about the intrinsic, not about NaNMath, whose rules were removed here on purpose in #425.
Reported first at JuliaMath/NaNMath.jl#109, closed with "This is a ChainRules issue ... Please open an issue there".
Julia 1.10.12 and 1.11.9, Zygote 0.7.13, NaNMath 1.1.4,
ChainRulesCore 1.26.1.
- Lingua principale
- Julia
- Stelle
- 475
- Fork
- 98
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaDiff/ChainRules.jl
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 55/100
JuliaDiff/ChainRules.jl#818 ·
-
refactoring
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
JuliaDiff/ChainRules.jl#815 ·
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
JuliaDiff/ChainRules.jl#810 ·
-
stack overflow issueAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
JuliaDiff/ChainRules.jl#809 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
JuliaDiff/ChainRules.jl#803 · 4 commenti ·
Tutte le issue di JuliaDiff/ChainRules.jl
Issue simili
-
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
CliMA/ClimaAtmos.jl#4891 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
tagbot-manual
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
tshort/StaticCompiler.jl#191 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
SciML/SciMLSensitivity.jl#1703 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
JuliaGPU/GPUCompiler.jl#1008 ·
I maintainer di solito rispondono entro 1 giorno