class_docstr: This class provides a collection of logging properties that are useful for training.
  These include setting the save folder, in which progression of training/testing metrics is visualized,
  csv log-files are stored, sample recoveries are plotted and an internal data saver.
class_docstr_tok: ["This","class","provides","a","collection","of","logging","properties","that","are","useful","for","training",".","These","include","setting","the","save","folder",",","in","which","progression","of","training\/testing","metrics","is","visualized",",","csv","log-files","are","stored",",","sample","recoveries","are","plotted","and","an","internal","data","saver","."]
docstr: Args:
      opt:               argparse.Namespace, contains all training-specific parameters.
      metrics_to_log:    dict, dictionary which shows in what structure the data should be saved.
                         is given as the output of aux.metrics_to_examine. Example:
                         {'train': ['Epochs', 'Time', 'Train Loss', 'Time'],
                          'val': ['Epochs','Time','NMI','F1', 'Recall @ 1','Recall @ 2','Recall @ 4','Recall @ 8']}
      name:              Name of this logger. Will be used to distinguish logged files from other LOGGER instances.
      start_new:         If set to true, a new save folder will be created initially.
  Returns:
      Nothing!
docstr_tok: ["Args",":","opt",":","argparse.Namespace",",","contains","all","training-specific","parameters",".","metrics_to_log",":","dict",",","dictionary","which","shows","in","what","structure","the","data","should","be","saved",".","is","given","as","the","output","of","aux.metrics_to_examine",".","Example",":","{","'train","'",":","[","'Epochs","'",",","'Time","'",",","'Train","Loss","'",",","'Time","'","]",",","'val","'",":","[","'Epochs","'",",","'Time","'",",","'NMI","'",",","'F1","'",",","'Recall","@","1","'",",","'Recall","@","2","'",",","'Recall","@","4","'",",","'Recall","@","8","'","]","}","name",":","Name","of","this","logger",".","Will","be","used","to","distinguish","logged","files","from","other","LOGGER","instances",".","start_new",":","If","set","to","true",",","a","new","save","folder","will","be","created","initially",".","Returns",":","Nothing","!"]
code: def __init__(self, opt, metrics_to_log, name="Basic", start_new=True):
      """
      Args:
          opt:               argparse.Namespace, contains all training-specific parameters.
          metrics_to_log:    dict, dictionary which shows in what structure the data should be saved.
                             is given as the output of aux.metrics_to_examine. Example:
                             {'train': ['Epochs', 'Time', 'Train Loss', 'Time'],
                              'val': ['Epochs','Time','NMI','F1', 'Recall @ 1','Recall @ 2','Recall @ 4','Recall @ 8']}
          name:              Name of this logger. Will be used to distinguish logged files from other LOGGER instances.
          start_new:         If set to true, a new save folder will be created initially.
      Returns:
          Nothing!
      """
      self.prop = opt
      self.metrics_to_log = metrics_to_log
  
      ### Make Logging Directories
      if start_new:
          set_logging(opt)
  
      ### Set Progress Saver Dict
      self.progress_saver = self.provide_progress_saver(metrics_to_log)
  
      ### Set CSV Writters
      self.csv_loggers = {
          mode: CSV_Writer(
              opt.save_path + "/log_" + mode + "_" + name + ".csv",
              lognames,
          )
          for mode, lognames in metrics_to_log.items()
      }
  
imports: import warnings
  import csv
  import datetime
  import os
  import pickle
  import faiss
  import matplotlib.pyplot
  import numpy
  import torch
  from PIL import Image
  from sklearn import metrics
  from torch import nn
  from tqdm import tqdm
  import pdb
label_desc: Use image node_id 1 to create a new LOGGER object  with example: obj = LOGGER(opt, metrics_to_log, name, start_new)