['μ = pm.Normal(\'μ\', mu=0, sd=10)\n    σ = pm.HalfNormal(\'σ\', sd=10)\n    \n    # Define the Poisson GP\n    eta = pm.Normal(\'eta\', mu=μ, sd=σ, shape=N)\n    eta_pp = pm.gp.mean.Zero(\'eta_pp\', shape=N)\n    cov = pm.gp.cov.ExpQuad(1, ls=0.5)\n    gp = pm.gp.Latent(\'gp\', cov_func=cov, mean_func=eta_pp)\n    \n    # Define the likelihood\n    y_obs = pm.Poisson(\'y_obs\', mu=pm.math.exp(gp), observed=y)\n    \n    # Sample from the posterior\n    trace = pm.sample(1000, tune=1000, chains=4, return_inferencedata=True, idata_kwargs={"log_likelihood": True})\n\n# Visualize the results\naz.plot_posterior(trace, var_names=[\'μ\', \'σ\'], round_to=2);\naz.plot_posterior(trace, var_names=[\'eta\'], round_to=2);\naz.plot_posterior(trace, var_names=[\'y_obs\'], round_to=2);\n\nplt.show()\n\n']