Skip to content

Commit eac0b79

Browse files
Compute accept probability with logsumexp
1 parent ef26ae8 commit eac0b79

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

pymc/step_methods/metropolis.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,10 +314,13 @@ def astep(self, q0: RaveledVars) -> tuple[RaveledVars, StatsType]:
314314

315315
self.steps_until_tune -= 1
316316

317+
self.accept_rate_iter = np.atleast_1d(self.accept_rate_iter)
318+
log_N = np.log(self.accept_rate_iter.shape[0])
319+
317320
stats = {
318321
"tune": self.tune,
319322
"scaling": np.mean(self.scaling),
320-
"accept": np.mean(np.exp(self.accept_rate_iter)),
323+
"accept": np.exp(scipy.special.logsumexp(self.accept_rate_iter) - log_N),
321324
"accepted": np.mean(self.accepted_iter),
322325
}
323326

0 commit comments

Comments
 (0)