Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 18:09
    codecov[bot] commented #5817
  • 18:09
    michaelosthege synchronize #5817
  • 18:09

    michaelosthege on issue-5812

    Warn about resizing `MutableDat… (compare)

  • 18:00
    codecov[bot] commented #5816
  • 17:56
    codecov[bot] commented #5816
  • 17:55
    ricardoV94 edited #5815
  • 17:49
    codecov[bot] commented #5816
  • 17:46
    codecov[bot] commented #5816
  • 17:46
    codecov[bot] commented #5816
  • 17:43
    codecov[bot] commented #5816
  • 17:42
    codecov[bot] commented #5816
  • 17:41
    codecov[bot] commented #5817
  • 17:41
    michaelosthege synchronize #5817
  • 17:41

    michaelosthege on issue-5812

    Add `Model.set_dim` method for … (compare)

  • 17:39
    codecov[bot] commented #5816
  • 17:38
    codecov[bot] commented #5816
  • 17:37
    codecov[bot] commented #5816
  • 17:31
    ricardoV94 commented #5816
  • 17:31
    ricardoV94 commented #5816
  • 17:25
    michaelosthege synchronize #5810
Maxim Kochurov
@ferrine
Whithout having a look at the model it is diffucult to say what else can go wrong.
I had sime experience with TS. Initial testval matters
But there was the case when you have some unobserved in time
Florf
@omenrust_twitter
Hi, I'm new to PYMC3 and I was wondering if someone could help me figure out why it's running so slow; even before any sampling has started. My model has ~4000 groups (each with their own observations and parameters) and I'm trying to model the groups as a mixture of 2 populations. I have a loop where I create lists with the individual parameters and Likelihoods for all the groups. But even this construction is very slow.
Maxim Kochurov
@ferrine
hi
I think vectorization can help
Florf
@omenrust_twitter
This is a snippet of the code if that helps:https://pastebin.com/D6e7VL73
You can create grouped priors in vector notation
Florf
@omenrust_twitter
So instead of looping for each ~4000 group, I can create priors with shape=~4000 you mean?
Maxim Kochurov
@ferrine
yes and pass appropriate hyperparams to them
logp is computed elemwise so hyper parameters should match one to one in rows (shape[0])
then for likelihood you can do the thing as in notebook radon_est = a[county_idx] + b[county_idx] * data.floor.values
concat all data and remember group id
Maxim Kochurov
@ferrine
I see you don't use hyperparams that depend on group. So this case is right the same as Hierarchical GLM in implementation
 Z = pm.Categorical(‘Z’,  tt.stack([1.0-w1,w1]), shape=n_groups)
 MU = pm.Normal(‘mu’, H1_mu[Z], H1_precision[Z], shape=n_groups)
 ALPHA = pm.Gamma('alpha', alpha=H1_alpha[Z], beta=H1_beta[Z], shape=n_groups)
loop can be rewritten in this way
Florf
@omenrust_twitter
Thanks! Not ignoring you by the way, was reading the notebook :) it helps alot. I think I can get it from here
Also, is there a way to specify starting values? For pymc2 I think it was value=xxx but doesn't seem to work for v3
Junpeng Lao
@junpenglao
you can provide starting value by adding testval=.5 etc, for example MU = pm.Normal(‘mu’, H1_mu[Z], H1_precision[Z], shape=n_groups, testval=np.ones(n_groups))
Florf
@omenrust_twitter
thanks!
Nikos Koudounas
@aplamhden
Hello,I would like to know if sample_ppc() is working with the new ADVI interface?
Maxim Kochurov
@ferrine
Yes, you should create a variational trace with pm.sample_approx
Nikos Koudounas
@aplamhden
I create my trace with this: trace=approx.sample(500) and then ppc = pm.sample_ppc(trace, model=basic_model, samples=500, progressbar=False) then i have an error : TypeError: object of type 'TensorVariable' has no len()
Maxim Kochurov
@ferrine
What is full traceback?
Nikos Koudounas
@aplamhden
what u mean with full traceback?
Maxim Kochurov
@ferrine
just copy-paste of full error
with functions calls
so I can see where is this error
Nikos Koudounas
@aplamhden

Yeah i saw the term Traceback and i got what u mean. Here is the error ---------------------------------------------------------------------------
TypeError Traceback (most recent call last)

<ipython-input-51-67616625ebc1> in <module>()
1 ann_input.set_value(X_test)
2 ann_output.set_value(Y_test)
----> 3 ppc = pm.sample_ppc(trace, model=basic_model, samples=500, progressbar=False)
4
5 # Use probability of > 0.5 to assume prediction of class 1

C:\Users\Nikos\Documents\Lasagne\python-3.4.4.amd64\lib\site-packages\pymc3\sampling.py in sample_ppc(trace, samples, model, vars, size, random_seed, progressbar)
526 for var in vars:
527 ppc[var.name].append(var.distribution.random(point=param,
--> 528 size=size))
529
530 return {k: np.asarray(v) for k, v in ppc.items()}

C:\Users\Nikos\Documents\Lasagne\python-3.4.4.amd64\lib\site-packages\pymc3\distributions\continuous.py in random(self, point, size, repeat)
219 def random(self, point=None, size=None, repeat=None):
220 mu, tau, _ = draw_values([self.mu, self.tau, self.sd],
--> 221 point=point)
222 return generate_samples(stats.norm.rvs, loc=mu, scale=tau**-0.5,
223 dist_shape=self.shape,

C:\Users\Nikos\Documents\Lasagne\python-3.4.4.amd64\lib\site-packages\pymc3\distributions\distribution.py in draw_values(params, point)
183 if not isinstance(node, (tt.sharedvar.TensorSharedVariable,
184 tt.TensorConstant)):
--> 185 givens[name] = (node, drawvalue(node, point=point))
186 values = [None for
in params]
187 for i, param in enumerate(params):

C:\Users\Nikos\Documents\Lasagne\python-3.4.4.amd64\lib\site-packages\pymc3\distributions\distribution.py in draw_value(param, point, givens)
251 except:
252 shape = param.shape
--> 253 if len(shape) == 0 and len(value) == 1:
254 value = value[0]
255 return value

TypeError: object of type 'TensorVariable' has no len()

Maxim Kochurov
@ferrine
Seems that it’s not ADVI failuture
Something is wrong in draw values
Do you reproduce the error with non-advi trace?
Nikos Koudounas
@aplamhden
i had the same error while i was trying to run the code from the original ipynb https://github.com/pymc-devs/pymc3/blob/master/docs/source/notebooks/bayesian_neural_network_opvi-advi.ipynb Yes i had the same error with NUTS and Metropolis
Maxim Kochurov
@ferrine
Try passing include_transformed=True to approx.sample
I remember some changes there
Nikos Koudounas
@aplamhden
The same error again.
Maxim Kochurov
@ferrine
So opening an issue is the only way now.
We’ll try to solve the problem before release
If it is possible, could you please provide minimal failing example?
Nikos Koudounas
@aplamhden
Sure, i am doing it atm.
Nikos Koudounas
@aplamhden
I opened an issue. Thnx for help @ferrine
Rémi Louf
@rlouf
Hi, I am new to PyMC3 and find the project amazing! I was wondering if there were ways someone like me could start contributing to the project? I would like to become more fluent in Python and learn more about probabilistic programming at the same time :smile:
Junpeng Lao
@junpenglao
hi @rlouf , welcome! I think a great starting point is to run the notebooks in https://github.com/pymc-devs/pymc3/tree/master/docs/source/notebooks and try to fix/report the errors - we always need hands to maintain the notebooks as we are doing it mostly by hand currently. And our API changes quite a bit in the pass few months so something might be broken and we have not realized yet.
I think this is a great way also to learn python and bayesian statistics at the same time.
There are also notebooks need some explanations and background information, for example https://github.com/pymc-devs/pymc3/blob/master/docs/source/notebooks/cox_model.ipynb which would be a great starting point for contribution as well.
Rémi Louf
@rlouf
Hi @junpenglao ! Thank you for the pointers, it indeed looks like an interesting way to get to know PyMC3 and learn a bit more about bayesian statistics. I'll come back when my homework is done :) I might also add a comprehensive notebook on bayesian A/B testing (with hierarchical models and all)--unless you feel there is no need for it.
Junpeng Lao
@junpenglao
It would be a great addition! ;-)
We just set up our discourse forum, for longer discussion please move to https://discourse.pymc.io/
Thomas Wiecki
@twiecki
:+1: