stack overflow issue
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- julia
- Área
- machine-learning, tooling
Línea de trabajo
Comienza con la ChainRulesCore.rrule personalizada para Lux.apply y rastrea cómo su llamada forward de Lux.apply interactúa con Zygote.pullback. Usa la discusión enlazada de Discourse como contexto; el trabajo estará terminado cuando la regla evite el desbordamiento de pila recursivo y admita la backpropagation con checkpointing para el modelo Lux.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hello
I have a memory-constrained problem with a Lux.jl model that uses Zygote for most of the backpropagation.
I tried to approach this from chainrules perspective I need to checkpoint each Lux.jl layer in neural network. So I tried to achieve it like that :
function ChainRulesCore.rrule(::typeof(Lux.apply), l::Lux.AbstractExplicitLayer, x, ps, st)
y = Lux.apply(l, x, ps, st)
function pullback_checkpointed(Δy)
y, pb =Zygote.pullback(Lux.apply,l, x, ps, st)
return NoTangent(), pb(Δy)
end
y, pullback_checkpointed
end
Rule gets invoked in backpropagation Hovewer the issue is that for some reason it try recursively to do backpropagation of the first line
y = Lux.apply(l, x, ps, st)
so I get stack overflow error; how to correct it?
I had also posted this issue in https://discourse.julialang.org/t/avoid-storing-intermediate-results-from-the-forward-pass-by-default/119694/4?u=jakub_mitura
- Lenguaje dominante
- Julia
- Estrellas
- 475
- Forks
- 98
- Merge medio
- 1 d 3 h
- PR fusionados (30 d)
- 2
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 JuliaDiff/ChainRules.jl
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
JuliaDiff/ChainRules.jl#818 ·
-
refactoring
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
JuliaDiff/ChainRules.jl#815 ·
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
JuliaDiff/ChainRules.jl#810 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
JuliaDiff/ChainRules.jl#803 · 4 comentarios ·
-
Avoid device-to-host copy in `∇getindex!`Posiblemente ocupada @pxl-th la tomó hace 849 días. AbiertoGPU
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
JuliaDiff/ChainRules.jl#800 · 2 comentarios ·
Todos los issues de JuliaDiff/ChainRules.jl
Issues similares
-
OptimizationCUTEst jobs fail: gfortran not installed on the runnerPosiblemente ocupada @ChrisRackauckas-Claude la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
SciML/SciMLBenchmarks.jl#1946 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
JuliaSmoothOptimizers/NCL.jl#101 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
WaterLily-jl/WaterLily.jl#367 ·
Los mantenedores suelen responder en 1 día