Ability to specify different rules based on what combinations of inputs are actually being used
I maintainer di solito rispondono entro 1 giorno
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
- backend-api-design
Direzione di ricerca
Inizia esaminando l’API ChainRules e il gist collegato, quindi confronta l’estensione proposta con il design esistente di ChainRulesCore. Esamina la discussione intorno alla PR #521 e determina se il lavoro debba essere ospitato da un package di estensione sperimentale; il lavoro è completato quando sono stati definiti un’API e un piano di implementazione per regole di derivazione specifiche per combinazioni di input.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
It would be nice to have an extension to the ChainRules API that allowed for different rules to be written and hit depending on what combination of inputs the derivative is being taken with respect to.
(or maybe similar analogy for forwards mode)
Basically partial derivative rules.
Thunking is a simple approximation to this (with it's own set of struggles)
@wsmoses requested for Enzyme, though this is also relevant to every kind of operator overloading based AD (since only tracked types etc will have derivatives taken wrt to them).
In contrast it is useless for Zygote/Diffractor as they do no kind of activity analysis etc, and transform absolutely all code that is run.
A bit of a sketch for what that API might look-like is in https://gist.github.com/oxinabox/c6ad25c468b3108f8a799bda66c147f8/
This might also be useful for partial mutation support, since it is probably completely safe to have rules for things that mutate inputs that are not "active" on the derivative path? (cf https://github.com/JuliaDiff/ChainRules.jl/pull/521)
Though as the main reason we don't do mutation is tied to Diffractor/Zygote not supporting it, that might be kinda moot, unless they got some at least some basic activity analysis.
(NB: we may not initially implement this in ChainRulesCore. It might be better to make a little experimental extension package for it first.)
- Lingua principale
- Julia
- Stelle
- 267
- Fork
- 66
- Merge medio
- 1g 1h
- PR unite (30g)
- 9
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 JuliaDiff/ChainRulesCore.jl
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 28/100
JuliaDiff/ChainRulesCore.jl#712 ·
I maintainer di solito rispondono entro 1 giorno
-
variable scope of `@thunk`Forse già presa @chengchingwen l’ha presa 620 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 32/100
JuliaDiff/ChainRulesCore.jl#684 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue Structural Tangent
Difficoltà 2/5 1-3 ore Idoneità per principianti 55/100
JuliaDiff/ChainRulesCore.jl#669 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
JuliaDiff/ChainRulesCore.jl#668 · 6 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
breaking
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
JuliaDiff/ChainRulesCore.jl#665 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di JuliaDiff/ChainRulesCore.jl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Sienna-Platform/InfrastructureSystems.jl#675 ·
I maintainer di solito rispondono entro 2 giorni
-
TargetEncoder reuses the first level's shrinkage factor for all levels when m > 0Forse già presa @parth-patel010 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
JuliaAI/MLJTransforms.jl#95 · 1 commento ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
SciML/RecursiveArrayTools.jl#687 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
SciML/LinearSolve.jl#1412 ·
I maintainer di solito rispondono entro 8 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
SciML/Corleone.jl#179 ·
I maintainer di solito rispondono entro 1 giorno