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.
Кто-нибудь еще сталкивается с этим и знает, как устранить неполадки?