class_docstr: Callback that streams epoch results to a csv file.
  
  Supports all values that can be represented as a string,
  including 1D iterables such as `np.ndarray`.
  
  Example:
  
      ```python
      csv_logger = CSVLogger('training.log')
      model.fit(X_train, Y_train, callbacks=[csv_logger])
      ```
docstr: Arguments:
      filename: filename of the csv file, e.g. 'run/log.csv'.
      separator: string used to separate elements in the csv file.
      append: True: append if file exists (useful for continuing
          training). False: overwrite existing file,
docstr_tok: ["Arguments",":","filename",":","filename","of","the","csv","file",",","e.g",".","'run\/log.csv","'",".","separator",":","string","used","to","separate","elements","in","the","csv","file",".","append",":","True",":","append","if","file","exists","(","useful","for","continuing","training",")",".","False",":","overwrite","existing","file",","]
code: def __init__(
      self, filename: str, separator: str = ",", append: bool = False
  ):
      """
      Arguments:
          filename: filename of the csv file, e.g. 'run/log.csv'.
          separator: string used to separate elements in the csv file.
          append: True: append if file exists (useful for continuing
              training). False: overwrite existing file,
      """
      self.sep = separator
      self.filename = filename
      self.append = append
      self.writer = None
      self.keys = None
      self.append_header = True
      self.file_flags = ""
      self._open_args = {"newline": "\n"}
      super(CSVLogger, self).__init__()
  
file_path: elegy/elegy/callbacks/csv_logger.py
imports: import collections
  import csv
  import io
  import os
  import typing
  import numpy
  import six
  from .callback import Callback
label_desc: Use image node_id 1 to create a new CSVLogger object from inherited base classes: Callback with example: obj = CSVLogger(filename, separator, append)