class_docstr: Base class shared by Tacotron and Tacotron2
docstr: Callback for setting values wrt gradual training schedule.
  
  Args:
      trainer (TrainerTTS): TTS trainer object that is used to train this model.
docstr_tok: ["Callback","for","setting","values","wrt","gradual","training","schedule",".","Args",":","trainer","(","TrainerTTS",")",":","TTS","trainer","object","that","is","used","to","train","this","model","."]
code: def on_epoch_start(self, trainer):
      """Callback for setting values wrt gradual training schedule.
  
      Args:
          trainer (TrainerTTS): TTS trainer object that is used to train this model.
      """
      if self.gradual_training:
          r, trainer.config.batch_size = gradual_training_scheduler(
              trainer.total_steps_done, trainer.config
          )
          trainer.config.r = r
          self.decoder.set_r(r)
          if trainer.config.bidirectional_decoder:
              trainer.model.decoder_backward.set_r(r)
          print(f"\n > Number of output frames: {self.decoder.r}")
  
imports: import copy
  from abc import abstractmethod
  from typing import Dict, Tuple
  import torch
  from coqpit import Coqpit
  from torch import nn
  from TTS.tts.layers.losses import TacotronLoss
  from TTS.tts.models.base_tts import BaseTTS
  from TTS.tts.utils.helpers import sequence_mask
  from TTS.tts.utils.speakers import SpeakerManager
  from TTS.tts.utils.synthesis import synthesis
  from TTS.tts.utils.text.tokenizer import TTSTokenizer
  from TTS.tts.utils.visual import plot_alignment, plot_spectrogram
  from TTS.utils.generic_utils import format_aux_input
  from TTS.utils.io import load_fsspec
  from TTS.utils.training import gradual_training_scheduler
label_desc: Use image node_id 19 for calling the BaseTacotron obj's underlying member method code with example usage: obj.on_epoch_start(trainer) without return types