class_docstr: This loop is the top-level loop where training starts.
  
  It simply counts the epochs and iterates from one to the next by calling ``TrainingEpochLoop.run()`` in its
  ``advance()`` method.
  
  Example::
  
      # FitLoop
      for epoch in range(max_epochs):
          # TrainingEpochLoop
          for batch_idx, batch in enumerate(train_dataloader):
              loss = lightning_module.training_step(batch, batch_idx)
              ...
  
              # ValidationEpochLoop
              for batch_idx, batch in enumerate(val_dataloader):
                  lightning_module.validation_step(batch, batch_idx)
                  ...
              ...
          ...
  
  Args:
      min_epochs: The minimum number of epochs
      max_epochs: The maximum number of epochs, can be set -1 to turn this limit off
class_docstr_tok: ["This","loop","is","the","top-level","loop","where","training","starts",".","It","simply","counts","the","epochs","and","iterates","from","one","to","the","next","by","calling","``","TrainingEpochLoop.run","(",")","``","in","its","``","advance","(",")","``","method",".","Example",":",":","#","FitLoop","for","epoch","in","range","(","max_epochs",")",":","#","TrainingEpochLoop","for","batch_idx",",","batch","in","enumerate","(","train_dataloader",")",":","loss","=","lightning_module.training_step","(","batch",",","batch_idx",")","...","#","ValidationEpochLoop","for","batch_idx",",","batch","in","enumerate","(","val_dataloader",")",":","lightning_module.validation_step","(","batch",",","batch_idx",")","...","...","...","Args",":","min_epochs",":","The","minimum","number","of","epochs","max_epochs",":","The","maximum","number","of","epochs",",","can","be","set","-1","to","turn","this","limit","off"]
docstr: Returns the minimum number of steps to run.
docstr_tok: ["Returns","the","minimum","number","of","steps","to","run","."]
code: def min_steps(self) -> Optional[int]:
      """Returns the minimum number of steps to run."""
      return self.epoch_loop.min_steps
  
imports: import logging
  from typing import Optional, Union
  import torch
  from typing_extensions import override
  import lightning.pytorch
  from lightning.fabric.utilities.data import _set_sampler_epoch, sized_len
  from lightning.fabric.utilities.warnings import PossibleUserWarning
  from lightning.pytorch.loops import _Loop
  from lightning.pytorch.loops.fetchers import _DataFetcher
  from lightning.pytorch.loops.progress import _Progress
  from lightning.pytorch.loops.training_epoch_loop import _TrainingEpochLoop
  from lightning.pytorch.loops.utilities import _is_max_limit_reached, _select_data_fetcher
  from lightning.pytorch.trainer import call
  from lightning.pytorch.trainer.connectors.data_connector import _check_dataloader_iterable, _DataLoaderSource, _parse_num_batches, _process_dataloader, _request_dataloader, _resolve_overfit_batches
  from lightning.pytorch.trainer.connectors.logger_connector.result import _ResultCollection
  from lightning.pytorch.trainer.states import RunningStage, TrainerFn
  from lightning.pytorch.utilities.combined_loader import _SUPPORTED_MODES, CombinedLoader
  from lightning.pytorch.utilities.data import has_len_all_ranks
  from lightning.pytorch.utilities.exceptions import MisconfigurationException, SIGTERMException
  from lightning.pytorch.utilities.model_helpers import is_overridden
  from lightning.pytorch.utilities.rank_zero import rank_zero_debug, rank_zero_info, rank_zero_warn
label_desc: Use image node_id 4 for calling the _FitLoop obj's underlying member method code with example usage: obj.min_steps() and returns: self