在Pymc

时间:2017-07-06 00:32:10

标签: python numpy pymc

更新:检查堆栈跟踪,我可以看到正在调用MCMC。那是为什么?

导入我的模型时,我得到了附加的输出。我不确定pyMC在做什么。它看起来像拟合的输出,但我没有调用任何拟合程序。

step: 1 potentials:[4.9537616968132445, 4.9537616968132445,4.9537616968132445, 5.6614419392151367, 5.6614419392151367, 5.6614419392151367, 5.6614419392151367, 5.6614419392151367, 5.6614419392151367, 5.6614419392151367] value_best:4.95376169681
step: 2 potentials:[4.2460814544113523, 4.2460814544113523, 4.9537616968132445, 4.9537616968132445, 4.2460814544113523, 4.9537616968132445, 4.9537616968132445, 5.9537616968132445, 5.6614419392151367, 5.6614419392151367, 4.9537616968132445, 4.9537616968132445] value_best:4.24608145441
step: 3 potentials:[3.5384012120094606, 4.2460814544113523, 

我没有调用Model或MCMC或MAP或任何东西,只是导入了我的模型。

这是我的模特:

from pymc import DiscreteUniform,Uniform, stochastic,deterministic
from rushhour import min_manhattan_distance, opt_solution_instances
from astar import LRTA
import numpy as np
from test import instance_set
from csv import DictReader
from random import random

__all__=['instances','subject_error_rates','learning_iter',
'h_epsilon','model_error_rates']


@deterministic()
def subject_error_rates():
    return np.array([1.2 for i in instance_set[:20]])


learning_iter=DiscreteUniform('learning_iter', lower=1, upper=10, doc='learning_iter')

h_epsilon = Uniform('h_epsilon',lower=0.,upper=1.)

instances=np.array(instance_set[:20])

@deterministic
def model_error_rates(instances=instances,h_epsilon=h_epsilon,learning_iter=learning_iter):
    def f(x):
        return float(opt_solution_instances[i.name])/len(LRTA(i,heur=lambda x: h_epsilon*min_manhattan_distance(x),update_h=True,iters=learning_iter))
    return [f(i) for i in instances]

我很确定我做错了什么但不确定它是什么,有什么提示吗?

0 个答案:

没有答案