Correctly Defining Gaussian Process Polynomial Kernel

I tried the polynomial kernel with the following settings. As you can see I use hyperpriors to the all parameters to the kernel.

 with pm.Model() as self.model:
       l = pm.Gamma("l", alpha=2, beta=1)
       offset = pm.Gamma("offset", alpha=2, beta=1)
       nu = pm.HalfCauchy("nu", beta=1)
       d = pm.HalfNormal("d", sd=5)

       cov = nu ** 2 * pm.gp.cov.Polynomial(X.shape[1], l, d, offset)

       gp = pm.gp.Marginal(cov_func=cov)

       sigma = pm.HalfCauchy("sigma", beta=1)
       y_ = self.gp.marginal_likelihood("y", X=X, y=y, noise=sigma)

       map_trace = [pm.find_MAP()]

Then I get the following error say that the Cholesky decomposition was failed during the sampling from the predictive distributions.
Does anyone help me with correctly defining the GP polynomial kernel?

Error Trace :

logp = -1.3632e+08, ||grad|| = 4.2484e+08: 100%|██████████| 3/3 [00:00<00:00,  3.31it/s]   
  0%|          | 0/20 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "/home/nadheesh/PycharmProjects/performancePredictionForArchitecturePlaning/run/rint-2006-all-o.py", line 467, in <module>
    test_pred, test_unc = model.predict(test_x, "test_pred_linear", with_error=True)
  File "/home/nadheesh/PycharmProjects/performancePredictionForArchitecturePlaning/run/rint-2006-all-o.py", line 239, in predict
    pred_samples = pm.sample_ppc(self.map_trace, vars=[f_pred], samples=20, random_seed=seed)
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/pymc3/sampling.py", line 1142, in sample_ppc
    values = draw_values(vars, point=param, size=size)
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/pymc3/distributions/distribution.py", line 293, in draw_values
    size=size))
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/pymc3/distributions/distribution.py", line 384, in _draw_value
    return param.random(point=point, size=size)
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/pymc3/model.py", line 42, in __call__
    return getattr(self.obj, self.method_name)(*args, **kwargs)
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/pymc3/distributions/multivariate.py", line 237, in random
    mu, cov = draw_values([self.mu, self.cov], point=point, size=size)
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/pymc3/distributions/distribution.py", line 321, in draw_values
    evaluated[param_idx] = _draw_value(param, point=point, givens=givens.values(), size=size)
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/pymc3/distributions/distribution.py", line 417, in _draw_value
    return func(*values)
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/theano/compile/function_module.py", line 917, in __call__
    storage_map=getattr(self.fn, 'storage_map', None))
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/theano/gof/link.py", line 325, in raise_with_op
    reraise(exc_type, exc_value, exc_trace)
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/theano/compile/function_module.py", line 903, in __call__
    self.fn() if output_subset is None else\
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/theano/gof/op.py", line 892, in rval
    r = p(n, [x[0] for x in i], o)
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/theano/tensor/slinalg.py", line 76, in perform
    z[0] = scipy.linalg.cholesky(x, lower=self.lower).astype(x.dtype)
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/scipy/linalg/decomp_cholesky.py", line 91, in cholesky
    check_finite=check_finite)
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/scipy/linalg/decomp_cholesky.py", line 40, in _cholesky
    "definite" % info)
numpy.linalg.linalg.LinAlgError: 3-th leading minor of the array is not positive definite
Apply node that caused the error: Cholesky{lower=True, destructive=False, on_error='raise'}(Elemwise{Composite{((((i0 + i1) ** i2) * i3) + i4 + i5)}}[(0, 0)].0)
Toposort index: 15
Inputs types: [TensorType(float64, matrix)]
Inputs shapes: [(1071, 1071)]
Inputs strides: [(8568, 8)]
Inputs values: ['not shown']
Outputs clients: [[Solve{A_structure='lower_triangular', lower=False, overwrite_A=False, overwrite_b=False}(Cholesky{lower=True, destructive=False, on_error='raise'}.0, TensorConstant{[ 1727.  1..4.  8631.]}), Solve{A_structure='lower_triangular', lower=False, overwrite_A=False, overwrite_b=False}(Cholesky{lower=True, destructive=False, on_error='raise'}.0, Elemwise{Composite{(((i0 + i1) ** i2) * i3)}}[(0, 0)].0)]]

Backtrace when the node is created(use Theano flag traceback.limit=N to make it longer):
  File "/home/nadheesh/PycharmProjects/performancePredictionForArchitecturePlaning/run/rint-2006-all-o.py", line 467, in <module>
    test_pred, test_unc = model.predict(test_x, "test_pred_linear", with_error=True)
  File "/home/nadheesh/PycharmProjects/performancePredictionForArchitecturePlaning/run/rint-2006-all-o.py", line 238, in predict
    f_pred = self.gp.conditional(name, X)
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/pymc3/gp/gp.py", line 503, in conditional
    mu, cov = self._build_conditional(Xnew, pred_noise, False, *givens)
  File "/home/nadheesh/anaconda3/envs/edward-test/lib/python2.7/site-packages/pymc3/gp/gp.py", line 452, in _build_conditional
    L = cholesky(stabilize(Kxx) + Knx)