pyro-ppl/pyro

extending Predictive to support sampling by plate name

開放

#2,783 建立於 2021年3月16日

 (5 則留言) (1 個反應) (0 位負責人)Python (981 個分叉)batch import
discussionenhancementhelp wanted

倉庫指標

星標
 (8,211 顆星)
PR 合併指標
 (平均合併 10天 19小時) (30 天內合併 1 個 PR)

描述

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.

貢獻者指南