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

Should I make the kernels in GraphKernels.jl subtypes of KernelFunctions.Kernel?

Aperta
#308 3 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
julia

Direzione di ricerca

Esamina il package GraphKernels.jl e l’interfaccia KernelFunctions.Kernel, iniziando dalle convenzioni esistenti di kernelmatrix descritte nell’issue. Considera le implicazioni del threading, della simmetria, della differenziabilità, delle passeggiate aleatorie con seed e delle trasformazioni dei grafi memorizzate nella cache. Il lavoro sarebbe considerato completato con un design concordato su se e come i graph kernel debbano integrarsi con KernelFunctions, anziché con una singola modifica di codice specificata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

I have started working on a package called GraphKernels.jl, that implements kernel functions between graphs. So far I have deliberately used similar function names as this packge, for example kernelmatrix, Now I wanted to discuss if it would make sense to make all these graph kernels subtypes of Kernel from this package?

There are a few things, that might be special for graph kernels:

  • Calculating the kernel function can be quite slow - therefore it is important that I can calculate the kernel matrix with multiple threads and also relay on the symmetry so I will not have to calculate both K(g1, g2) and K(g2, g1).
  • I am not an expert in automatic differentiation, but so far, it looks quite difficult to make these kernels differentiable, expect in a few parameters
  • Some kernels relay on randomizes walks, so I somehow have to figure out how to achieve consistent results there when providing a seed
  • A lot of graph kernels are of the form K(f(g), f(g2)) where f is a function that transforms a single graph into something else (for example a vertex embedding), before these transformed values are passed to the kernel. By caching the output of f, one can reduce the amount of calculations significantly when constructing a kernel matrix.

On the other hand, it would be nice to have a consistent interface for kernels, and to be able to use the functions from this package. Maybe there will also be some general kernel interface in MLJ at some point.

And maybe the multi thread support could be moved to this package at some point, there might be data types that could benefit from faster kernel matrix constructions (images and strings for example).

So what is your opinion on that?

Lingua principale
Julia
Stelle
276
Fork
42
Merge medio
2g 20h
PR unite (30g)
3

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.