Ошибка: преобразование в TensorType из переменной функции в коде Python

Я пробовал пример набора данных Kaggle Blackhole, который был объяснен в книге Кэмерона Дэвидсона-Пилона "Байесовские методы для хакеров" в главе 5. Однако у меня были трудности с использованием pymc3 пакет и его функции. Приоры были определены как равномерное распределение, и это работает нормально. Такова функция meean это определено после. Но я столкнулся с ошибкой при попытке нормального распределения, в котором говорится, что функция не может быть преобразована в TensorType. Куда я иду не так? Пожалуйста, найдите мой код ниже:

def euc_dist(x,y):
    return np.sqrt(((x-y)**2).sum(axis=1))

def f_dist(gxy_pos,halo_pos,c):
    return np.maximum(euc_dist(gxy_pos,halo_pos),c)[:,None]

def tan_dist(glxy_pos,halo_pos):
    delta=glxy_pos-halo_pos
    t=(2*np.arctan(delta[:,1]/delta[:,0]))[:,None]
    return np.concatenate([-np.cos(t),-np.sin(t)],axis=1)

import pymc3 as pm
with pm.Model() as model:
    mass_large = pm.Uniform('mass_large',40,180)
    halo = pm.Uniform('halo',0,4200)

def meean(mass=mass_large,h_pos=halo,glx_pos=data[:,:2]):
    return mass/f_dist(glx_pos,h_pos,240)*tan_dist(glx_pos,h_pos)

mn=pm.Deterministic('mean',meean)

ellpty=pm.Normal('ellipticity',meean,1./0.05,observed=data[:,2:])

Ошибка:

~\Anaconda3\lib\site-packages\theano\tensor\basic.py in as_tensor_variable(x, name, ndim)
    198         except Exception:
    199             str_x = repr(x)
--> 200         raise AsTensorError("Cannot convert %s to TensorType" % str_x, type(x))
    201 
    202 # this has a different name, because _as_tensor_variable is the

AsTensorError: ('Cannot convert <function meean at 0x000002CD7113BD90> to TensorType', <class 'function'>)

0 ответов

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