ForwardDiff fails for Matern kernels when the two arguments are equal
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- julia
- Ambito
- machine-learning
Direzione di ricerca
Inizia eseguendo l'MWE fornito con KernelFunctions v0.10.58 o versione successiva e ForwardDiff v1.0.0 o versione successiva, concentrandoti su ForwardDiff.gradient per MaternKernel quando entrambi gli argomenti sono uguali. Confronta il risultato con argomenti diversi, versioni precedenti dei pacchetti e Zygote; il lavoro è completato quando il gradiente con argomenti uguali non restituisce più NaNs e i casi esistenti continuano a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I have a project in which I take gradients of Matern kernels with respect to an argument via ForwardDiff and was able to do so without issue until recently. When using KernelFunctions v0.10.58 or greater or ForwardDiff v1.0.0 or greater, however, calling ForwardDiff.gradient with respect to an argument on a Matern kernel returns a vector of NaNs when the two arguments to the kernel are equal. If I use Zygote instead I get a vector of zeros. MWE:
using KernelFunctions
using ForwardDiff
using Zygote
vec1 = randn(2)
vec2 = randn(2)
myfun(x) = MaternKernel(ν=2.1)(x, vec1)
ForwardDiff.gradient(myfun, vec1) # vector of NaNs
ForwardDiff.gradient(myfun, vec2) # works as expected
Zygote.gradient(myfun, vec1) # vector of 0s
Zygote.gradient(myfun, vec2) # works as expected
For reference, ForwardDiff.gradient(myfun, vec1) returns a vector of zeros with KernelFunctions v0.10.57 and ForwardDiff v0.10.38.
- Lingua principale
- Julia
- Stelle
- 276
- Fork
- 41
- Merge medio
- 1g 13h
- PR unite (30g)
- 1
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
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 JuliaGaussianProcesses/KernelFunctions.jl
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
JuliaGaussianProcesses/KernelFunctions.jl#609 · 1 commento ·
-
Future plans?Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
JuliaGaussianProcesses/KernelFunctions.jl#585 · 8 commenti · 3 reazioni ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
-
new kernel
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 25/100
JuliaGaussianProcesses/KernelFunctions.jl#533 · 1 reazione ·
Tutte le issue di JuliaGaussianProcesses/KernelFunctions.jl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Sienna-Platform/PowerSystemCaseBuilder.jl#239 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
JuliaPluto/Malt.jl#114 ·
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
QuantumSavory/QuantumSavory.jl#592 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
JuliaQUBO/QUBOTools.jl#136 ·