]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
fix(ReforceXY): use .item() to extract scalar from action array
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sat, 31 Jan 2026 20:48:50 +0000 (21:48 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Sat, 31 Jan 2026 20:49:11 +0000 (21:49 +0100)
SB3 model.predict() returns 1D array when vectorized_env=True is detected, causing int() to fail on non-0D arrays.

ReforceXY/user_data/freqaimodels/ReforceXY.py

index 16d185ef5c20f2ca50d69eb8c069004f20ef92c4..174a78e1694d63635afe61d9464563f42db924c3 100644 (file)
@@ -1177,7 +1177,8 @@ class ReforceXY(BaseReinforcementLearningModel):
                     **action_masks_param,
                 )
                 episode_start[:] = False
-                logger.debug("Predict [%s]: predicted action=%d", dk.pair, int(action))
+                action = int(action.item())
+                logger.debug("Predict [%s]: predicted action=%d", dk.pair, action)
             else:
                 logger.debug(
                     "Predict [%s]: model.predict (observations.shape=%s)",
@@ -1187,9 +1188,10 @@ class ReforceXY(BaseReinforcementLearningModel):
                 action, _ = model.predict(
                     observations, deterministic=True, **action_masks_param
                 )
-                logger.debug("Predict [%s]: predicted action=%d", dk.pair, int(action))
+                action = int(action.item())
+                logger.debug("Predict [%s]: predicted action=%d", dk.pair, action)
 
-            return int(action)
+            return action
 
         predicted_actions: List[int] = []
         for start_idx in range(0, n - window_size + 1):