You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TFP的JointDistributionCoroutineAutoBatched如何给log_prob传入两组观测数据

实现方法

你的JointDistributionCoroutineAutoBatched模型参数顺序和yield变量的先后完全对应,你当前模型的变量输出顺序为:

  • 潜变量(共6个):c1 → c2 → s → theta → p → qi
  • 观测变量(共2个,按yield先后):k → a

你只需要把两组观测按顺序追加在潜变量参数的末尾传入log_prob即可,假设你已经有观测数据k_data(对应k的观测)和a_data(对应a的观测),两种常用写法如下:

写法1:显式函数定义

def joint_log_prob(*latent_args):
    # latent_args按顺序对应6个潜变量:c1, c2, s, theta, p, qi
    return joint.log_prob(*latent_args, k_data, a_data)

如果担心位置传参出错,也可以用关键字参数绑定观测,不需要严格卡顺序:

def joint_log_prob(*latent_args):
    return joint.log_prob(*latent_args, k=k_data, a=a_data)

写法2:Lambda简写

和你之前单观测的逻辑完全一致,只是把原来的单观测元组替换为两个观测的元组:

joint_log_prob = lambda *x: joint.log_prob(x + (k_data, a_data))

内容的提问来源于stack exchange,提问作者sean00002

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 10:45:00