class_docstr: Save model at the beginning of training and after every epoch.
  
  Similar to tf.keras.callbacks.ModelCheckpoint, but this allows us to specify
  a custom save fn to call, such as the HuggingFace model.save() which writes
  .h5 files and config information.
class_docstr_tok: ["Save","model","at","the","beginning","of","training","and","after","every","epoch",".","Similar","to","tf.keras.callbacks.ModelCheckpoint",",","but","this","allows","us","to","specify","a","custom","save","fn","to","call",",","such","as","the","HuggingFace","model.save","(",")","which","writes",".h5","files","and","config","information","."]
code: def on_epoch_end(self, epoch, logs=None):
      # Save path 1-indexed = # of completed epochs.
      save_path = os.path.join(self.save_path_base, f"epoch-{epoch+1}")
      self.save_fn(save_path)
  
file_path: lit/lit_nlp/examples/tools/glue_trainer.py
imports: from collections.abc import Sequence
  import os
  from absl import app
  from absl import flags
  from absl import logging
  from lit_nlp.examples.datasets import classification
  from lit_nlp.examples.datasets import glue
  from lit_nlp.examples.models import glue_models
  from lit_nlp.lib import serialize
  import tensorflow
label_desc: Use image node_id 3 for calling the EpochSaverCallback obj's underlying member method code with example usage: obj.on_epoch_end(epoch, logs) without return types