Have `train!` record, for inclusion in output, a history of the public state of every control
@ablaom ci sta già lavorando.
Dal 7/10/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
I propose some enhancements to address two main shortcomings of IterationControl.jl, mostly based on working on tutorials for MLJIteration.jl (which wraps MLJ models in the controls provided by IterationControl.jl):
-
While possible in practice, it is rather complicated to do things like: (i) Get a history of losses (or training losses) for training over multiple iterations (see #47); and (i) Set up a callback to record, say, evolution of some learned parameters. In both cases, you have to define and initialise containers to store the relevant trace, and also to arrange the relevant callback control to write to that container as training proceeds. When you repeat the experiment, you may need to flush the trace containers. This is inconvenient.
-
The internal state of a control is currently considered private API and the only interface point is for accessing what, from the final state, is returned in the "report" output by "train!". This seems unnecessarily opaque.
-
The "report" returned by "train!" is quite hard to grok, without delving into docs or scratching your head.
I propose:
-
Introduce a new method
public_state(control, state)that exposes everything aboutstatethat might be useful to know at every control cycle, in a human readable form (named tuple, say) -
By default, have
train!record a complete history of the public state of each control, exposed in the report, with acompact=trueoption to just record final state (for the atypical case fallbacks are exposing large objects as part of state) -
Make improvements to the structure and display of the report to make access more intuitive.
Among other things, these changes would likely address #62 and #47.
These changes would be necessarily breaking, although the logic of controls themselves would not change much, if at all.
Some steps required are:
- Introduce
public_statethe more primitive level ofEarlyStopping.jl(a dep of IterationControl.jl).
- Lingua principale
- Julia
- Stelle
- 25
- Fork
- 1
- Merge medio
- 35m
- PR unite (30g)
- 1
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 JuliaAI/IterationControl.jl
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
JuliaAI/IterationControl.jl#63 · 1 commento ·
-
next breaking release
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Remove unnecessary restriction that a callback function `<:Function`. That is, allow any callable.Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
JuliaAI/IterationControl.jl#58 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
JuliaAI/IterationControl.jl#47 · 1 commento ·
Tutte le issue di JuliaAI/IterationControl.jl
Issue simili
-
tagbot-manual
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
tshort/StaticCompiler.jl#191 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
SciML/SciMLSensitivity.jl#1703 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
JuliaGPU/GPUCompiler.jl#1008 ·
I maintainer di solito rispondono entro 1 giorno
-
`biggs6` disagrees with CUTEst and is unbounded belowForse già presa @timholy l’ha presa 1 giorno fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Cannot set point coordinates with `Range`s (or arbitrary arrays) using `Makie.Resampler` in `heatmap`Forse già presa @ffreyer l’ha presa oggi. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno