Я посмотрел на аналогичный вопрос здесь
предупреждение pymc: значение не является ни числовым, ни массив с плавающей запятой dtype
но ответов нет, может ли кто-нибудь сказать мне, должен ли я игнорировать это предупреждение или что делать в противном случае?
Модель имеет стохастическую переменную (среди прочего) tau
, которая равна DiscreteUniform
.
Ниже приведен соответствующий код для модели:
tau = pm.DiscreteUniform("tau", lower = 0, upper = n_count_data)
lambda_1 = pm.Exponential("lambda_1", alpha)
lambda_2 = pm.Exponential("lambda_2", alpha)
print "Initial values: ", tau.value, lambda_1.value, lambda_2.value
@pm.deterministic
def lambda_(tau = tau, lambda_1 = lambda_1, lambda_2 = lambda_2):
out = np.zeros(n_count_data)
out[:tau] = lambda_1
out[tau:] = lambda_2
return out
observation = pm.Poisson("obs", lambda_, value = count_data, observed = True)
model = pm.Model([observation, lambda_1, lambda_2, tau]);
m = pm.MAP(model) # **This line caueses error**
print "Output after using MAP: ", tau.value, lambda_1.value, lambda_2.value