这可能是非常基本的,但我无法弄清楚——我有一个y
从 Dirichlet-Multinomial 生成的 100x5 矩阵,我想使用张量流概率推断参数 gamma。下面是我实现的模型(为简单起见,我假设现在所有 5 个类的 gamma 都是相同的):
def dirichlet_multinomial_model(S, p, N, tau):
gamma = ed.Gamma(2.0, 3.0, name='gamma')
y = ed.DirichletMultinomial(500, tf.ones(5)*gamma, name='y')
return y
log_joint = ed.make_log_joint_fn(dirichlet_multinomial_model)
def target_log_prob_fn(gamma):
return log_joint(
S=S, p=p, N=N, tau=tau,
gamma=gamma,
y=y)
当我尝试使用 HMC 从中采样时,我收到以下错误:
ValueError:初始化参数“值”的形状不兼容。预期 (5,),得到 (100, 5)。
因此,指定一个长度为 5 的伽马向量似乎导致程序期望我的数据为 5x1 形状。我无法弄清楚如何正确指定模型——任何指针都将不胜感激。