pm.Potential without Theano?

Yes that’s what I meant - it is a way to check if the model is setup correctly

in this case, it means the evaluation of logp is still not correct. How about setting the input to theano tensor ivector?

@as_op(itypes=[theano.tensor.dvector, theano.tensor.ivector],
       otypes=[theano.tensor.dscalar])
def likelihood(params, data):
    return me.model.getLogProbability(data).sum()