I’m looking at this quickly, but I believe that you can only provide data into the observed argument whereas mu has some tensor variables and whatnot in there. Perhaps try the following for y_hat:
y_hat = pm.Normal("y_hat", mu, sigma, observed=y)
Let me know if this helps (or not)!