RFC: Example Rule "Gallery" to showcase CRC best practices?
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
- Documentazione
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- julia
- Ambito
- documentation
Direzione di ricerca
La issue non indica file, test o un punto di ingresso concreto. Inizia esaminando gli esempi esistenti nella documentazione di ChainRules e l’ispirazione collegata per la galleria, quindi chiarisci l’ambito della galleria e il modello di contribuzione. Il lavoro sarà completo quando sarà stata concordata una struttura per presentare esempi personalizzati di rrule e frule e sarà stata presa una decisione su come selezionare gli esempi provenienti da package esterni.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Following up on some Slack (#autodiff) discussion with @mzgubic, I want to float the idea of adding a CRC rule "gallery" to the ChainRules docs, inspired by analogous things in the plotting world (eg BeautifulMakie).
I think that best practices for rule authors have become a bit too complicated to sufficiently demonstrate with just one or two small examples per section in the docs, particularly with interplay between
- custom structs & their constructors
- higher order functions
- CRC Thunks, Tangent types & AD callbacks
There are many clever rule authors in the wild who post helpful examples on Github/Discourse/Slack/Zulip but this information is very disaggregated and un-searchable. If there were some way for users to submit nice but less ultra-minimal examples and/or to aggregate relevant examples of custom rrule and frule definitions in published packages (as @ToucheSir suggested) I think linking to such a "gallery" from the CR docs would speed up the learning process for rule authors.
I would be glad to help realize such a thing if it seemed feasible and people wanted it.
Less organized thoughts from Slack:
A few custom rule examples I can find in forums but which I wouldn't know how to write based on CR docs:
- Constructors of widely used
AbstractArraysubtypes likeStaticArrays,StructArrays, etc. LinearAlgebramethods of “implicit operator” types representing giant Matrices, eg from LinearMaps.jl- Iterative solver and partial decomposition methods involving the former, eg methods from IterativeSolvers.jl, KrylovKit.jl, Arpack.jl, etc, (“adjoint method” VJP rules)
- Higher order function methods defined outside Base, often versions of
maporreducewith parallelism. - Gradient accumulation into an
InplaceableThunkof a custom struct
- 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 621 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
-
release preparation spack
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
30-minutes algorithm any-language codewars dart easy elixir hackerrank hacktoberfest haskell help wanted interview-prep julia leetcode lua open-source r scala students zig
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Huerte/algo-solutions-python#163 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
QuantumSavory/QuantumClifford.jl#853 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
JuliaPackaging/Yggdrasil#15441 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
JuliaSmoothOptimizers/Penelopt.jl#260 ·
I maintainer di solito rispondono entro 1 giorno