Unify `kernelmatrix`, `kernelkronmat`, `kronecker_kernelmatrix`, and `kernelpdmat`?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Refactorización
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- julia
- Área
- machine-learning
Línea de trabajo
Empieza leyendo las implementaciones existentes y los sitios donde se invocan kernelmatrix, kernelkronmat, kronecker_kernelmatrix y kernelpdmat. Compara su comportamiento de dispatch y de tipos de contenedor y, después, define el alcance y los requisitos de compatibilidad para una API unificada; se considera terminado cuando los maintainers estén de acuerdo con el diseño y la funcionalidad afectada siga estando cubierta.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
It's late and I haven't thought much about it - but maybe we could unify the different kernel matrix functions by using
# maybe the default dispatch should depend on `k`, `x`, and `y`?
kernelmatrix(k, x, y) = kernelmatrix(Matrix, k, x, y)
kernelmatrix(k, x) = kernelmatrix(Matrix, k, x)
function kernelmatrix(::Type{T}, k, x, y)::T where {T<:Matrix}
...
end
function kernelmatrix(::Type{T}, k, x)::T where {T<:Matrix}
...
end
# instead of kronecker_kernelmatrix
function kernelmatrix(::Type{T}, k::MOKernel, x::IsotopicMOInputsUnion, y::IsotopicMOInputsUnion)::T where {T<:KroneckerProduct}
...
end
...
# instead of kernelpdmat
function kernelmatrix(::Type{T}, k, x)::T where {T<:PDMat}
...
end
I'm sure some parts of the sketch could be improved but the main idea would be to unify the different functions by using an additional argument with the desired (possibly abstract) container type for dispatching.
I assume this would also make it a bit more convenient to eg extend kernelmatrix to CuArray or static arrays.
One could even include kernelkronmat (I assume) if we define a special input type that we can dispatch on:
function kernelmatrix(::Type{T}, k, xgrid::Gridtype)::T where {T<:KroneckerProduct}
...
end
- Lenguaje dominante
- Julia
- Estrellas
- 276
- Forks
- 42
- Merge medio
- 19 h
- PR fusionados (30 d)
- 2
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de JuliaGaussianProcesses/KernelFunctions.jl
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
JuliaGaussianProcesses/KernelFunctions.jl#609 · 1 comentario ·
-
Future plans?Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
JuliaGaussianProcesses/KernelFunctions.jl#585 · 8 comentarios · 3 reacciones ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
JuliaGaussianProcesses/KernelFunctions.jl#571 · 1 reacción ·
-
new kernel
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Todos los issues de JuliaGaussianProcesses/KernelFunctions.jl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
oxfordcontrol/COSMO.jl#211 ·
-
documentation
Dificultad 2/5 Medio día Aptitud para principiantes 65/100
Los mantenedores suelen responder en 6 días
-
Out-of-place JLArray/GPU problem with VectorContinuousCallback scalar-indexes (callback cache built with CPU zeros)Posiblemente ocupada @ChrisRackauckas-Claude la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
SciML/OrdinaryDiffEq.jl#4813 ·
Los mantenedores suelen responder en 1 día
-
ARKODE: callbacks that modify `u` throw MethodError on reinitPosiblemente ocupada @devmotion la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
SciML/Sundials.jl#575 ·
-
broken links in docsAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día