Implement gammalogccdf for ForwardDiff
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par reproduire le MethodError affiché et inspectez le point d’entrée gammalogccdf dans StatsFuns/src/distrs/gamma.jl, ainsi que les arguments ForwardDiff.Dual dans la stack trace. Suivez le chemin de Poisson tronqué jusqu’à cet appel ; le travail est terminé lorsque ce chemin ne déclenche plus le MethodError signalé pour les entrées ForwardDiff.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
I am modeling in Turing.jl some process in which I use Gamma prior to parametrize Truncated Poisson and I use NUTs sampler.
However, my model has nested dependence and I cannot fully vectorize the loop, so Zygote would be slow. The default ForwardDiff throws at me an error
ERROR: MethodError: no method matching _gammalogccdf(::ForwardDiff.Dual{ForwardDiff.Tag{Turing.TuringTag, Float64}, Float64, 8}, ::ForwardDiff.Dual{ForwardDiff.Tag{Turing.TuringTag, Float64}, Float64, 8}, ::ForwardDiff.Dual{ForwardDiff.Tag{Turing.TuringTag, Float64}, Float64, 8})
Stacktrace:
[1] gammalogccdf(k::Int64, θ::Int64, x::ForwardDiff.Dual{ForwardDiff.Tag{Turing.TuringTag, Float64}, Float64, 8})
@ StatsFuns ~/.julia/packages/StatsFuns/atA5S/src/distrs/gamma.jl:71
[2] poislogcdf(λ::ForwardDiff.Dual{ForwardDiff.Tag{Turing.TuringTag, Float64}, Float64, 8}, x::Int64)
@ StatsFuns ~/.julia/packages/StatsFuns/atA5S/src/distrs/pois.jl:30
[3] logcdf(d::Poisson{ForwardDiff.Dual{ForwardDiff.Tag{Turing.TuringTag, Float64}, Float64, 8}}, x::Int64)
@ Distributions ~/.julia/packages/Distributions/Ufrz2/src/univariates.jl:638
[4] _logcdf_noninclusive(d::Poisson{ForwardDiff.Dual{ForwardDiff.Tag{Turing.TuringTag, Float64}, Float64, 8}}, x::Int64)
@ Distributions ~/.julia/packages/Distributions/Ufrz2/src/censored.jl:441
[5] truncated(d::Poisson{ForwardDiff.Dual{ForwardDiff.Tag{Turing.TuringTag, Float64}, Float64, 8}}, l::Int64, u::Int64)
@ Distributions ~/.julia/packages/Distributions/Ufrz2/src/truncate.jl:67
[6] Truncated(d::Poisson{ForwardDiff.Dual{ForwardDiff.Tag{Turing.TuringTag, Float64}, Float64, 8}}, l::Int64, u::Int64)
@ Distributions ./deprecated.jl:105
[7] macro expansion
To my understanding this error suggests that the model is encountering issues with automatic differentiation, specifically when evaluating the complementary cumulative distribution function (CCDF) of the Gamma distribution. Seems like the error might be related to the Truncated Poisson distribution, as the truncation operation might involve the CCDF of the underlying distribution.
Can that be solved in ForwardDiff AD ?
- Langage dominant
- Julia
- Étoiles
- 1k
- Forks
- 165
- Merge moyen
- 6 h 34 min
- PR mergées (30 j)
- 1
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de JuliaDiff/ForwardDiff.jl
-
missing floatmin, floatmax, and issubnormal for DualPeut-être pris @devmotion l’a pris il y a 29 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
JuliaDiff/ForwardDiff.jl#852 · 6 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
`min` does not return the minimum with respect to `isless` when values tiePeut-être pris @devmotion l’a pris il y a 3 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
JuliaDiff/ForwardDiff.jl#868 ·
Les mainteneurs répondent en général sous 1 jour
-
Third-order derivatives of `x / y` are `Inf` or `NaN` for small `y`, e.g. in gradients of Laplace approximationsPeut-être pris @devmotion l’a pris il y a 3 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 65/100
JuliaDiff/ForwardDiff.jl#866 ·
Les mainteneurs répondent en général sous 1 jour
-
`fma` and `muladd` ignore NaN-safe modePeut-être pris @devmotion l’a pris il y a 14 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
JuliaDiff/ForwardDiff.jl#860 ·
Les mainteneurs répondent en général sous 1 jour
-
Enable NaN-safe mode by defaultPeut-être pris @devmotion l’a pris il y a 16 jours. Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
JuliaDiff/ForwardDiff.jl#857 · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de JuliaDiff/ForwardDiff.jl
Issues similaires
-
`SplitRungeKutta` time steppers never call `update_lagrangian_particle_state!`, so particle `tracked_fields` are never updatedPeut-être pris @ali-ramadhan l’a pris aujourd’hui. Ouvertebug 🐞
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
CliMA/Oceananigans.jl#6381 ·
Les mainteneurs répondent en général sous 1 jour
-
ci system:windows test
Difficulté 1/5 Moins d'une heure Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour
-
Single-column TKE example: boundary-layer depth description doesn't match Han & Bretherton (2019)Ouverte
Difficulté 1/5 1-3 heures Accessibilité débutants 82/100
NumericalEarth/Breeze.jl#1143 ·
Les mainteneurs répondent en général sous 1 jour
-
format-check (Runic) is red on master: formatter drift on ~200 filesPeut-être pris @ChrisRackauckas-Claude l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
SciML/ModelingToolkit.jl#5337 · 1 commentaire ·
Les mainteneurs répondent en général sous 3 jours
-
bug parsers
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
lanl-ansi/GasModels.jl#366 ·