Okay, I reproduced the error. This is strange but at least I feel less negligent. When I explicitly set step=pm.NUTS() I get the following error:
/home/law98/anaconda3/envs/theano_env/lib/python3.5/site-packages/numpy/core/fromnumeric.py:2957: RuntimeWarning: Mean of empty slice.
out=out, **kwargs)
Bad initial energy, check any log probabilities that are inf or -inf, nan or very small:
x NaN
When I do not, but leave everything else the same, it states
Auto-assigning NUTS sampler...
And then successfully samples.
I used just a few draws for testing since it’s slow, but in both cases the sample command is as follows:
trace = pm.sample(20,tune=20,step=pm.NUTS(),chains=2)
EDIT:
When you don’t specify nuts, it prints “Initializing NUTS using jitter+adapt_diag…”
BUT when you use:
pm.sample(20,tune=20,step=pm.NUTS(),init='jitter+adapt_diag',chains=2)
you get the same bad initial energy error. So it isn’t just initialization that is different.
I would have expected them to have the same default behavior. Is there a way to tell what else is different?