I am getting no divergences and seemingly good convergence (note the \hat{r}). I just cut and pasted your code. I am running pymc v3.11.2 and theano-pymc v1.1.2.
Multiprocess sampling (4 chains in 2 jobs)
NUTS: [b, w]
Sampling 4 chains for 1_000 tune and 1_000 draw iterations (4_000 + 4_000 draws total) took 40 seconds.
The acceptance probability does not match the target. It is 0.8817572415352573, but should be close to 0.8. Try to increase the number of tuning steps.
The acceptance probability does not match the target. It is 0.8824272675568593, but should be close to 0.8. Try to increase the number of tuning steps.
The number of effective samples is smaller than 25% for some parameters.
mean sd hdi_3% hdi_97% mcse_mean mcse_sd ess_bulk ess_tail r_hat
w[0] 10.514 8.580 -5.108 27.238 0.358 0.256 578.0 754.0 1.0
w[1] -16.138 7.215 -29.167 -1.851 0.299 0.212 585.0 735.0 1.0
w[2] 4.954 6.910 -7.890 18.009 0.289 0.205 572.0 723.0 1.0
w[3] 4.810 4.263 -3.699 12.306 0.158 0.112 733.0 1192.0 1.0
w[4] -1.607 3.621 -8.023 5.442 0.091 0.065 1574.0 2033.0 1.0
w[5] 24.351 7.859 9.767 39.080 0.321 0.227 603.0 808.0 1.0
w[6] 19.428 7.858 4.582 33.896 0.328 0.233 577.0 729.0 1.0
w[7] 4.293 3.254 -1.798 10.347 0.126 0.089 667.0 956.0 1.0
w[8] -3.805 3.015 -9.293 2.117 0.117 0.083 670.0 937.0 1.0
w[9] -0.565 1.997 -4.291 3.273 0.061 0.043 1104.0 1689.0 1.0
b -1.092 9.642 -19.659 16.161 0.385 0.273 628.0 848.0 1.0