Calculus.hessian is not symmetric
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Reproduce la llamada reportada a Calculus.hessian en Julia e inspecciona finite_difference_hessian! en finite_difference.jl, especialmente el bucle del triángulo superior y su llamada final a Base.LinAlg.copytri!(H, 'U'). Compara las entradas resultantes de la matriz en posiciones simétricas y determina si la pequeña asimetría observada se origina en el cálculo del Hessiano o en la operación de copia del triángulo; se considera terminado cuando el comportamiento está explicado y corregido o documentado claramente, con cobertura para este caso.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
julia> @time h10 = Calculus.hessian(RB.mylike, RB.troubleParamsSim1.raw)
209.557745 seconds (2.43 G allocations: 83.867 GB, 10.31% gc time)
10x10 Array{Float64,2}:
566.715 -206.282 -50.7658 … 3135.03 -89.8427
-206.282 566.715 17.7032 -1993.75 47.1135
-50.7658 17.7032 143.437 -1163.21 33.7016
17.7032 -50.7658 -47.7584 282.533 1.3897
182.291 -122.875 -12.5876 -2943.26 27.7885
-2.95777 -5.09084 2.97638 … -452.285 15.1723
-45.7494 12.5752 39.2448 0.613878 24.8811
-1942.38 804.496 450.315 -35319.9 1935.28
3135.03 -1993.75 -1163.21 56057.6 -2498.87
-89.8427 47.1135 33.7016 -2498.87 1041.54
julia> issym(h10)
false
Closer inspection of h10 shows all the errors are extremely small; the largest is 4e-8.
My original assumption was that this was the result of numerical noise from calculating the derivatives in different orders. But the code (finite_difference_hessian! in finite_difference.jl) appears to compute only the upper triangle,
for i = 1:n
#code omitted
# and i+1:n appears to be parses (i+1):n, which is right
for j = i+1:n
and then ends with
Base.LinAlg.copytri!(H,'U')
So maybe the problem is in copytri!.
- Lenguaje dominante
- Julia
- Estrellas
- 286
- Forks
- 78
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 JuliaMath/Calculus.jl
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 44/100
JuliaMath/Calculus.jl#157 · 1 comentario ·
-
This package is deprecated?Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 45/100
JuliaMath/Calculus.jl#153 · 2 comentarios · 5 reacciones ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 28/100
JuliaMath/Calculus.jl#151 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
JuliaMath/Calculus.jl#150 ·
-
Gradients, second derivatives and hessians at pi not workingQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
JuliaMath/Calculus.jl#144 ·
Todos los issues de JuliaMath/Calculus.jl
Issues similares
-
`ShallowWaterModel` allocates ~9 KiB per grid point per RK3 stage on the CPUPosiblemente ocupada @ali-ramadhan la tomó hoy. Abiertoperformance 🏍️
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
CliMA/Oceananigans.jl#6421 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
JuliaQUBO/QUBOLib.jl#105 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
NCAR/musica#1118 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
`AMSGrad` state starts at `epsilon` instead of zero, so zero gradients move parameters and small gradients are dampedPosiblemente ocupada @parth-patel010 la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
FluxML/Optimisers.jl#247 · 1 comentario ·
-
README should say that row and column order must matchPosiblemente ocupada @SAUMYARSH la tomó hace 1 día. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 84/100