class_docstr: Abstract base class used to build new callbacks. Extend this class to build your own callbacks and overwrite functions
  that you want to monitor. Functions will be called automatically from the trainer once per relevant training event
  (e.g. at the beginning of epoch, end of epoch, beginning of batch, end of batch etc.)
class_docstr_tok: ["Abstract","base","class","used","to","build","new","callbacks",".","Extend","this","class","to","build","your","own","callbacks","and","overwrite","functions","that","you","want","to","monitor",".","Functions","will","be","called","automatically","from","the","trainer","once","per","relevant","training","event","(","e.g",".","at","the","beginning","of","epoch",",","end","of","epoch",",","beginning","of","batch",",","end","of","batch","etc",".",")"]
docstr: Called at the end of an epoch
  :param batch: batch number
  :param logs: collection of logs to process / parse / add to
  :return:
docstr_tok: ["Called","at","the","end","of","an","epoch",":","param","batch",":","batch","number",":","param","logs",":","collection","of","logs","to","process","\/","parse","\/","add","to",":","return",":"]
code: def on_batch_end(self, batch: int, logs: Collection = None):
      """
      Called at the end of an epoch
      :param batch: batch number
      :param logs: collection of logs to process / parse / add to
      :return:
      """
      pass
  
file_path: pywick/pywick/callbacks/Callback.py
imports: from typing import Collection
label_desc: Use image node_id 7 for calling the Callback obj's underlying member method code with example usage: obj.on_batch_end(batch, logs) without return types