From 13b2b2a5b774f61b855a5b0af0b5e470dba8cda6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Mon, 22 Dec 2025 19:05:35 +0100 Subject: [PATCH] fix(ReforceXY): adjust min_resource calculation 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 | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/ReforceXY/user_data/freqaimodels/ReforceXY.py b/ReforceXY/user_data/freqaimodels/ReforceXY.py index bd6e18d..83e0de3 100644 --- a/ReforceXY/user_data/freqaimodels/ReforceXY.py +++ b/ReforceXY/user_data/freqaimodels/ReforceXY.py @@ -1156,15 +1156,15 @@ class ReforceXY(BaseReinforcementLearningModel): return ((value + multiple - 1) // multiple) * multiple @staticmethod - def _ppo_resources(total_timesteps: int, n_envs: int) -> Tuple[int, int]: + def _ppo_resources( + total_timesteps: int, n_envs: int, reduction_factor: int + ) -> Tuple[int, int]: min_n_steps = ReforceXY._PPO_N_STEPS_MIN max_n_steps = ReforceXY._PPO_N_STEPS_MAX - min_resource = ( - max( - 1, - round(min_n_steps / ReforceXY._HYPEROPT_EVAL_FREQ_REDUCTION_FACTOR), - ) - * n_envs + min_resource = max( + 2 * reduction_factor, + round(min_n_steps / ReforceXY._HYPEROPT_EVAL_FREQ_REDUCTION_FACTOR) + * n_envs, ) rollout = max_n_steps * n_envs return ( @@ -1189,10 +1189,13 @@ class ReforceXY(BaseReinforcementLearningModel): n_envs = self.n_envs if ReforceXY._MODEL_TYPES[0] in self.model_type: # "PPO" min_resource, max_resource = ReforceXY._ppo_resources( - total_timesteps, n_envs + total_timesteps, n_envs, reduction_factor ) else: - min_resource = self.get_eval_freq(total_timesteps, hyperopt=True) * n_envs + min_resource = max( + 2 * reduction_factor, + self.get_eval_freq(total_timesteps, hyperopt=True) * n_envs, + ) max_resource = max(min_resource, total_timesteps + (n_envs - 1)) study: Study = create_study( -- 2.53.0