PyMC3 TypeError: выходные данные должны быть экземплярами переменной или Out.

Я пытаюсь запустить PyMCдемонстрационная тетрадь о DPMM: Смеси процесса Дирихле для оценки плотности - документация PyMC3 3.10.0

После получения правильной версии PyMC3 (v3.9.0), когда я запускаю следующую ячейку кода из указанной выше записной книжки:

      with pm.Model() as model:
    alpha = pm.Gamma("alpha", 1.0, 1.0)
    beta = pm.Beta("beta", 1.0, alpha, shape=K)
    w = pm.Deterministic("w", stick_breaking(beta))

    tau = pm.Gamma("tau", 1.0, 1.0, shape=K)
    lambda_ = pm.Gamma("lambda_", 10.0, 1.0, shape=K)
    mu = pm.Normal("mu", 0, tau=lambda_ * tau, shape=K)
    obs = pm.NormalMixture(
        "obs", w, mu, tau=lambda_ * tau, observed=old_faithful_df.std_waiting.values)

Ошибка TypeError:

      TypeError Traceback (most recent call last) <ipython-input-28-3e5d2cb5dec6> in <module> 7 lambda_ = pm.Gamma("lambda_", 10.0, 1.0, shape=K) 8 mu = pm.Normal("mu", 0, tau=lambda_ * tau, shape=K) ----> 9 obs = pm.NormalMixture( 10 "obs", w, mu, tau=lambda_ * tau, observed=old_faithful_df.std_waiting.values 11 )```
…
~/anaconda3/envs/ve1/lib/python3.8/site-packages/theano/compile/function/pfunc.py in rebuild_collect_shared(outputs, inputs, replace, updates, rebuild_strict, copy_inputs_over, no_default_updates) 223 cloned_outputs.append(Out(cloned_v, borrow=v.borrow)) 224 else: --> 225 raise TypeError( 226 "Outputs must be theano Variable or " 227 "Out instances. Received " + str(v) + " of type " + str(type(v))

TypeError: Outputs must be theano Variable or Out instances. Received Shape.0 of type <class 'theano.tensor.var.TensorVariable'>

Я получаю ту же ошибку TypeError при попытке запустить https://nbviewer.jupyter.org/github/fonnesbeck/Bios366/blob/master/notebooks/Section5_2-Dirichlet-Processes.ipynb при запуске следующей ячейки кода, которая также создает PyMC3 model:

      with pm.Model() as ss_model:
    
    α = pm.Gamma('α', 1., 1.)
    β = pm.Beta('β', 1, α, shape=K)
    w = pm.Deterministic('w', stick_breaking(β))
    
    μ = pm.Uniform('μ', 0., 300., shape=K)
    obs = pm.Mixture('obs', w, pm.Poisson.dist(μ), observed=sunspot_df.value)

Есть этот пост, в котором есть та же ошибка, но при работе напрямую с Theano.

Кто-нибудь еще сталкивается с этим и знает, как устранить неполадки?

0 ответов

Другие вопросы по тегам