I wanted to start with a simple case, so s is only binary right now. I will add more states later. With Bernoulli, I am still getting the same error though. Here is my new test case, with the changes suggested.
import numpy as np
import pandas as pd
import pymc3 as pm
import theano.tensor as tt
b = np.array([100, 120, 150, 200, 1000, 10000, 15000])
s = np.array([1, 0, 1, 1, 0, 0, 0])
s = pd.Categorical(s).codes
model = pm.Model()
with model:
l1 = pm.HalfNormal('l1', sd=100)
drift = tt.exp(-l1*b)
sd = pm.HalfNormal('sd', sd=1)
p1 = pm.Beta('p1', drift, sd)
obs = pm.Bernoulli('obs', p=p1, observed=s)