@@ -143,6 +143,7 @@ Stable Baselines provides you with a set of common callbacks for:
143
143
- evaluating the model periodically and saving the best one (:ref: `EvalCallback `)
144
144
- chaining callbacks (:ref: `CallbackList `)
145
145
- triggering callback on events (:ref: `EventCallback `, :ref: `EveryNTimesteps `)
146
+ - logging data every N timesteps (:ref: `LogEveryNTimesteps `)
146
147
- stopping the training early based on a reward threshold (:ref: `StopTrainingOnRewardThreshold <StopTrainingCallback >`)
147
148
148
149
@@ -313,7 +314,7 @@ An :ref:`EventCallback` that will trigger its child callback every ``n_steps`` t
313
314
314
315
.. note ::
315
316
316
- Because of the way ``PPO1 `` and `` TRPO `` work (they rely on MPI) , ``n_steps `` is a lower bound between two events.
317
+ Because of the way ``VecEnv `` work, ``n_steps `` is a lower bound between two events when using multiple environments .
317
318
318
319
319
320
.. code-block :: python
@@ -330,7 +331,30 @@ An :ref:`EventCallback` that will trigger its child callback every ``n_steps`` t
330
331
331
332
model = PPO(" MlpPolicy" , " Pendulum-v1" , verbose = 1 )
332
333
333
- model.learn(int (2e4 ), callback = event_callback)
334
+ model.learn(20_000 , callback = event_callback)
335
+
336
+ .. _LogEveryNTimesteps :
337
+
338
+ LogEveryNTimesteps
339
+ ^^^^^^^^^^^^^^^^^^
340
+
341
+ A callback derived from :ref: `EveryNTimesteps ` that will dump the logged data every ``n_steps `` timesteps.
342
+
343
+
344
+ .. code-block :: python
345
+
346
+ import gymnasium as gym
347
+
348
+ from stable_baselines3 import PPO
349
+ from stable_baselines3.common.callbacks import LogEveryNTimesteps
350
+
351
+ event_callback = LogEveryNTimesteps(n_steps = 1_000 )
352
+
353
+ model = PPO(" MlpPolicy" , " Pendulum-v1" , verbose = 1 )
354
+
355
+ # Disable auto-logging by passing `log_interval=None`
356
+ model.learn(10_000 , callback = event_callback, log_interval = None )
357
+
334
358
335
359
336
360
.. _StopTrainingOnMaxEpisodes :
0 commit comments