Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

ForwardDiff fails for Matern kernels when the two arguments are equal

Aperta
#571 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

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

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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di JuliaGaussianProcesses/KernelFunctions.jl

Tutte le issue di JuliaGaussianProcesses/KernelFunctions.jl

Issue simili

Altre issue su Julia

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.