Pm.sample_ppc breaks with AttributeError

Thank you @junpenglao.
That was very helpful. However not having bounds actually makes the ppc samples poor

fig, ax = plt.subplots(figsize=(8,6))
ax.hist(x2ppc[80], bins=50, normed=True, alpha=0.3, color='green', label='Posterior predictions')
ax.hist(df['x2'].values, bins=50, normed=True, alpha=0.3, label='Training data')
ax.legend(loc=1)

As an example,

mupost[0].max(), x2ppc[0].max(), x2ppc[10].max(), df['x2'].values.max(), 

yields:

(454.5148963473755, 108.0, 97.0, 56)

I tried Bounding mu as below, but that does not work:

mu = pm.Bound(pm.Deterministic, lower=1, upper=70)('mu', eta + delta * x1_shift)
AttributeError: 'function' object has no attribute 'dist'