model_table#

pymc_extras.printing.model_table(model: Model, *, split_groups: bool = True, truncate_deterministic: int | None = None, parameter_count: bool = True) Table[source]#

创建一个富文本表格,其中包含模型变量及其表达式的摘要。

参数:
  • model (Model) – 要总结的 PyMC 模型。

  • split_groups (bool) – 如果为 True,则每组变量(数据、free_RVs、确定性变量、势、observed_RVs)将由一个部分分隔。

  • truncate_deterministic (int | None) – 如果不为 None,则截断超出此长度的确定性变量的表达式。

  • empty_dims (bool) – 如果为 True,则将标量变量的维度显示为空列表。

  • parameter_count (bool) – 如果为 True,则添加一行,其中包含模型中参数的总数。

返回:

一个富文本表格,其中包含模型的变量、其表达式和维度。

返回类型:

Table

示例

import numpy as np
import pymc as pm

from pymc_extras.printing import model_table

coords = {"subject": range(20), "param": ["a", "b"]}
with pm.Model(coords=coords) as m:
    x = pm.Data("x", np.random.normal(size=(20, 2)), dims=("subject", "param"))
    y = pm.Data("y", np.random.normal(size=(20,)), dims="subject")

    beta = pm.Normal("beta", mu=0, sigma=1, dims="param")
    mu = pm.Deterministic("mu", pm.math.dot(x, beta), dims="subject")
    sigma = pm.HalfNormal("sigma", sigma=1)

    y_obs = pm.Normal("y_obs", mu=mu, sigma=sigma, observed=y, dims="subject")

table = model_table(m)
table  # Displays the following table in an interactive environment
'''
 Variable  Expression         Dimensions
─────────────────────────────────────────────────────
      x =  Data               subject[20] × param[2]
      y =  Data               subject[20]

   beta ~  Normal(0, 1)       param[2]
  sigma ~  HalfNormal(0, 1)
                              Parameter count = 3

     mu =  f(beta)            subject[20]

  y_obs ~  Normal(mu, sigma)  subject[20]
'''

输出可以在富文本控制台中显式呈现,或导出为文本、html 或 svg。

from rich.console import Console

console = Console(record=True)
console.print(table)
text_export = console.export_text()
html_export = console.export_html()
svg_export = console.export_svg()