docs: def fit(self, inputs=None, wait=True, logs=True, job_name=None, run_tensorboard_locally=False):
          """Train a model using the input training dataset.
  
          See :func:`~sagemaker.estimator.EstimatorBase.fit` for more details.
  
          Args:
              inputs (str or dict or sagemaker.session.s3_input): Information about the training data.
                  This can be one of three types:
  
                  * (str) - the S3 location where training data is saved.
                  * (dict[str, str] or dict[str, sagemaker.session.s3_input]) - If using multiple channels for
                      training data, you can specify a dict mapping channel names
                      to strings or :func:`~sagemaker.session.s3_input` objects.
                  * (sagemaker.session.s3_input) - channel configuration for S3 data sources that can provide
                      additional information as well as the path to the training dataset.
                      See :func:`sagemaker.session.s3_input` for full details.
  
              wait (bool): Whether the call should wait until the job completes (default: True).
              logs (bool): Whether to show the logs produced by the job.
                  Only meaningful when wait is True (default: True).
              job_name (str): Training job name. If not specified, the estimator generates a default job name,
                  based on the training image name and current timestamp.
              run_tensorboard_locally (bool): Whether to execute TensorBoard in a different process with
                  downloaded checkpoint information (default: False). This is an experimental feature, and requires
                  TensorBoard and AWS CLI to be installed. It terminates TensorBoard when execution ends.
          """
  
          def fit_super():
              super(TensorFlow, self).fit(inputs, wait, logs, job_name)
  
          if run_tensorboard_locally and wait is False:
              raise ValueError("Tensorboard is not supported with async fit")
  
          if self._script_mode_enabled() and run_tensorboard_locally:
              LOGGER.warning(_SCRIPT_MODE_TENSORBOARD_WARNING.format(self.model_dir))
              fit_super()
          elif run_tensorboard_locally:
              tensorboard = Tensorboard(self)
              tensorboard.validate_requirements()
  
              try:
                  tensorboard.start()
                  fit_super()
              finally:
                  # sleep 20 secs for tensorboard start up if fit() quits instantly
                  time.sleep(20)
                  tensorboard.event.set()
                  tensorboard.join()
          else:
              fit_super()