Should I make the kernels in GraphKernels.jl subtypes of KernelFunctions.Kernel?
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
- Ambito
- machine-learning
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)andK(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))wherefis 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 off, 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
- 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
-
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
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
JuliaGaussianProcesses/KernelFunctions.jl#571 · 1 reazione ·
-
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
-
io
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
JuliaGPU/GPUArrays.jl#837 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
bmad-sim/BeamTracking.jl#382 ·
I maintainer di solito rispondono entro 1 giorno