pyro-ppl/pyro

extending Predictive to support sampling by plate name

Ouverte

#2 783 ouverte le 16 mars 2021

 (5 commentaires) (1 réaction) (0 personne assignée)Python (981 forks)batch import
discussionenhancementhelp wanted

Métriques du dépôt

Stars
 (8 211 étoiles)
Métriques de merge PR
 (Merge moyen 10j 19h) (1 PR mergée en 30 j)

Description

Following our earlier discussion with @fritzo and @adamgayoso , creating this issue. Would be great if Predictive class can support sampling of all variables in a given plate, automatically pulling all site values in a given plate(plate_name) or all sites not is that plate, including both samples and observed values:

trace = poutine.trace(model).get_trace(*args, **kwargs)  # you'll need to fill in args,kwargs
cell_samples = {
    name: site["value"]
    for name, site in trace.nodes.items()
    if site["type"] == "sample"
    if any(f.name == plate_name for f in site["cond_indep_stack"])
}

This functionality would simplify dealing with local variables within a minibatch plate, by making it easy to do separate predictive calls for the minibatch plate variables and global variables.

Guide contributeur