class_docstr: Helper wrapper class around PyTorch Lightning's ``Trainer`` class.
  
  Specifically, this wrapper:
  
  * Checks if a model has a validation dataset passed in (under the ``val_loader`` attribute)
    and, if not, sets ``num_sanity_val_steps`` to 0 and ``check_val_every_n_epoch`` to
    ``sys.maxint``.
  
  * Checks if a GPU is available and, if ``gpus is None``, sets ``gpus = -1``.
  
  See ``pytorch_lightning.Trainer`` documentation for more details at:
  https://pytorch-lightning.readthedocs.io/en/latest/common/trainer.html#trainer-class-api
  
  Compared with ``CollieMinimalTrainer``, PyTorch Lightning's ``Trainer`` offers more flexibility
  and room for exploration, at the cost of a higher training time (which is especially true for
  larger models). We recommend starting all model exploration with this ``CollieTrainer``
  (callbacks, automatic Lightning optimizations, etc.), finding a set of hyperparameters that work
  for your training job, then using this in the simpler but faster ``CollieMinimalTrainer``.
  
  Parameters
  ----------
  model: collie.model.BasePipeline
      Initialized Collie model
  max_epochs: int
      Stop training once this number of epochs is reached
  benchmark: bool
      If set to ``True``, enables ``cudnn.benchmark``
  deterministic: bool
      If set to ``True``, enables ``cudnn.deterministic``
  **kwargs: keyword arguments
      Additional keyword arguments to be sent to the ``Trainer`` class:
      https://pytorch-lightning.readthedocs.io/en/latest/common/trainer.html#trainer-class-api
  
  Original ``pytorch_lightning.Trainer`` docstring as follows:
  ########
class_docstr_tok: ["Helper","wrapper","class","around","PyTorch","Lightning","'s","``","Trainer","``","class",".","Specifically",",","this","wrapper",":","*","Checks","if","a","model","has","a","validation","dataset","passed","in","(","under","the","``","val_loader","``","attribute",")","and",",","if","not",",","sets","``","num_sanity_val_steps","``","to","0","and","``","check_val_every_n_epoch","``","to","``","sys.maxint","``",".","*","Checks","if","a","GPU","is","available","and",",","if","``","gpus","is","None","``",",","sets","``","gpus","=","-1","``",".","See","``","pytorch_lightning.Trainer","``","documentation","for","more","details","at",":","https",":","\/\/pytorch-lightning.readthedocs.io\/en\/latest\/common\/trainer.html","#","trainer-class-api","Compared","with","``","CollieMinimalTrainer","``",",","PyTorch","Lightning","'s","``","Trainer","``","offers","more","flexibility","and","room","for","exploration",",","at","the","cost","of","a","higher","training","time","(","which","is","especially","true","for","larger","models",")",".","We","recommend","starting","all","model","exploration","with","this","``","CollieTrainer","``","(","callbacks",",","automatic","Lightning","optimizations",",","etc",".",")",",","finding","a","set","of","hyperparameters","that","work","for","your","training","job",",","then","using","this","in","the","simpler","but","faster","``","CollieMinimalTrainer","``",".","Parameters","--","--","--","--","--","model",":","collie.model.BasePipeline","Initialized","Collie","model","max_epochs",":","int","Stop","training","once","this","number","of","epochs","is","reached","benchmark",":","bool","If","set","to","``","True","``",",","enables","``","cudnn.benchmark","``","deterministic",":","bool","If","set","to","``","True","``",",","enables","``","cudnn.deterministic","``","*","*","kwargs",":","keyword","arguments","Additional","keyword","arguments","to","be","sent","to","the","``","Trainer","``","class",":","https",":","\/\/pytorch-lightning.readthedocs.io\/en\/latest\/common\/trainer.html","#","trainer-class-api","Original","``","pytorch_lightning.Trainer","``","docstring","as","follows",":","#","#","#","#","#","#","#","#"]
docstr: Property that just returns ``max_epochs``, included only so we can have
  a setter for it without an ``AttributeError``.
docstr_tok: ["Property","that","just","returns","``","max_epochs","``",",","included","only","so","we","can","have","a","setter","for","it","without","an","``","AttributeError","``","."]
code: def max_epochs(self):
      """
      Property that just returns ``max_epochs``, included only so we can have
      a setter for it without an ``AttributeError``.
  
      """
      try:
          return self.fit_loop.max_epochs
      except AttributeError:
          # compatible with old Pytorch Lightning ``Trainer`` API prior to version ``1.4.0``
          return self._max_epochs
  
imports: import sys
  from typing import Optional, Tuple, Union
  import warnings
  from pytorch_lightning import Trainer
  from pytorch_lightning.utilities import move_data_to_device
  import torch
  from tqdm.auto import tqdm
  from collie.model.base.base_pipeline import BasePipeline
  from collie.model.base.layers import MultiLRScheduler, MultiOptimizer
label_desc: Use image node_id 2 for calling the CollieTrainer obj's underlying member method code with example usage: obj.max_epochs() and returns: self, self