From: Jérôme Benoit Date: Mon, 22 Dec 2025 18:05:35 +0000 (+0100) Subject: fix(ReforceXY): adjust min_resource calculation X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=13b2b2a5b774f61b855a5b0af0b5e470dba8cda6;p=freqai-strategies.git fix(ReforceXY): adjust min_resource calculation Signed-off-by: Jérôme Benoit --- 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(