Conditioning an outcome of a function on observed data


I am trying to condition “scores” variable on the observed value in data. I show below how I tried to work around it. But my model does not converge doing that.

beta = numpyro.sample("beta", dist.Uniform(0, 100))
with numpyro.plate('data_loop', R) as I:
        voters = numpyro.sample("voters", dist.Exponential(0.04))
        ratio = jnp.exp(-beta *jnp.abs(consensus[DATA[i, 1].astype(int)] - DATA[i, 3].astype(float)/10))
        scores = jnp.round((voters * ratio) - voters * (1 - ratio),0)
        condition = numpyro.sample("score", dist.Uniform(scores-0.5, scores+0.5), obs=DATA[i, 4].astype(int))