class_docstr: Logs epoch-level metrics to a CSV file
  
  :param file: (string) path to csv file
  :param separator: (string) delimiter for file
  :param append: (bool) whether to append result to existing file or make new file
class_docstr_tok: ["Logs","epoch-level","metrics","to","a","CSV","file",":","param","file",":","(","string",")","path","to","csv","file",":","param","separator",":","(","string",")","delimiter","for","file",":","param","append",":","(","bool",")","whether","to","append","result","to","existing","file","or","make","new","file"]
code: def __init__(self, file, separator=",", append=False):
      self.file = file
      self.sep = separator
      self.append = append
      self.writer = None
      self.keys = None
      self.append_header = True
      super(CSVLogger, self).__init__()
  
file_path: pywick/pywick/callbacks/CSVLogger.py
imports: import csv
  import os
  from collections.abc import Iterable
  from collections import OrderedDict
  import torch
  from .None import Callback
label_desc: Use image node_id 1 to create a new CSVLogger object from inherited base classes: Callback with example: obj = CSVLogger(file, separator, append)