class_docstr: Main logger - the aim of this class is to store every log from training
  Log is a float value with corresponding training engine step
class_docstr_tok: ["Main","logger","-","the","aim","of","this","class","is","to","store","every","log","from","training","Log","is","a","float","value","with","corresponding","training","engine","step"]
docstr: Returns:
      groups generated with group patterns
  
  Notes:
      Auto create groups base on val_ prefix - this step is skipped if groups are set
          or if group patterns are available
docstr_tok: ["Returns",":","groups","generated","with","group","patterns","Notes",":","Auto","create","groups","base","on","val_","prefix","-","this","step","is","skipped","if","groups","are","set","or","if","group","patterns","are","available"]
code: def _auto_generate_groups(self) -> Dict[str, List[str]]:
      """
      Returns:
          groups generated with group patterns
  
      Notes:
          Auto create groups base on val_ prefix - this step is skipped if groups are set
              or if group patterns are available
      """
      groups = {}
      for key in self.log_history.keys():
          abs_key = self._find_suffix_with_group_patterns(key)
          if not groups.get(abs_key):
              groups[abs_key] = []
          groups[abs_key].append(key)
      return groups
  
file_path: livelossplot/livelossplot/main_logger.py
imports: import re
  from collections import OrderedDict, defaultdict
  from typing import NamedTuple, Dict, Iterable, List, Pattern, Tuple, Optional, Union
label_desc: Use image node_id 7 for calling the MainLogger obj's underlying member method code with example usage: obj._auto_generate_groups() and returns: groups