From 51274946b77fb549bfe6ed05c18ccdd851c5ac4b Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Mon, 15 Sep 2025 18:11:41 +0200 Subject: [PATCH] refactor(reforcexy): make n_stack discovery independant of the # of env wrappers MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- ReforceXY/user_data/freqaimodels/ReforceXY.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/ReforceXY/user_data/freqaimodels/ReforceXY.py b/ReforceXY/user_data/freqaimodels/ReforceXY.py index c12bad7..1025268 100644 --- a/ReforceXY/user_data/freqaimodels/ReforceXY.py +++ b/ReforceXY/user_data/freqaimodels/ReforceXY.py @@ -1485,13 +1485,15 @@ class InfoMetricsCallback(TensorboardCallback): float(_lr) if isinstance(_lr, (int, float, np.floating)) else "lr_schedule" ) n_stack = 1 - if self.training_env is not None and hasattr(self.training_env, "get_attr"): - try: - stacks = self.training_env.get_attr("n_stack") - if isinstance(stacks, (list, tuple)) and stacks and stacks[0]: - n_stack = int(stacks[0]) - except Exception: - pass + training_env = getattr(self, "training_env", None) + while training_env is not None: + if hasattr(training_env, "n_stack"): + try: + n_stack = int(getattr(training_env, "n_stack")) + except Exception: + pass + break + training_env = getattr(training_env, "venv", None) hparam_dict: Dict[str, Any] = { "algorithm": self.model.__class__.__name__, "n_envs": int(self.model.n_envs), -- 2.43.0