]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
fix(reforcexy): double evaluation during hyperopt
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 18 Sep 2025 10:39:52 +0000 (12:39 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 18 Sep 2025 10:39:52 +0000 (12:39 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
ReforceXY/user_data/freqaimodels/ReforceXY.py

index f978803aaa82f1601bad7d557c1f4752d66d771f..d146982ac60a8732dbf8f1b43a2e318df9a397ff 100644 (file)
@@ -375,33 +375,31 @@ class ReforceXY(BaseReinforcementLearningModel):
             self.progressbar_callback = ProgressBarCallback()
             callbacks.append(self.progressbar_callback)
 
-        self.eval_callback = MaskableEvalCallback(
-            self.eval_env,
-            eval_freq=eval_freq,
-            deterministic=True,
-            render=False,
-            best_model_save_path=data_path,
-            use_masking=self.is_maskable,
-            callback_on_new_best=rollout_plot_callback,
-            callback_after_eval=no_improvement_callback,
-            verbose=verbose,
-        )
-        callbacks.append(self.eval_callback)
-
         if not trial:
-            return callbacks
-
-        self.optuna_callback = MaskableTrialEvalCallback(
-            self.eval_env,
-            trial,
-            eval_freq=eval_freq,
-            deterministic=True,
-            render=False,
-            best_model_save_path=data_path,
-            use_masking=self.is_maskable,
-            verbose=verbose,
-        )
-        callbacks.append(self.optuna_callback)
+            self.eval_callback = MaskableEvalCallback(
+                self.eval_env,
+                eval_freq=eval_freq,
+                deterministic=True,
+                render=False,
+                best_model_save_path=data_path,
+                use_masking=self.is_maskable,
+                callback_on_new_best=rollout_plot_callback,
+                callback_after_eval=no_improvement_callback,
+                verbose=verbose,
+            )
+            callbacks.append(self.eval_callback)
+        else:
+            self.optuna_callback = MaskableTrialEvalCallback(
+                self.eval_env,
+                trial,
+                eval_freq=eval_freq,
+                deterministic=True,
+                render=False,
+                best_model_save_path=data_path,
+                use_masking=self.is_maskable,
+                verbose=verbose,
+            )
+            callbacks.append(self.optuna_callback)
         return callbacks
 
     def fit(