class_docstr: Callback that outputs the result of each epoch_number or batch into a CSV file.
  
  Args:
      filename (str): The filename of the CSV.
      batch_granularity (bool): Whether to also output the result of each batch in addition to the epochs.
          (Default value = False)
      separator (str): The separator to use in the CSV.
          (Default value = ',')
      append (bool): Whether to append to an existing file.
class_docstr_tok: ["Callback","that","outputs","the","result","of","each","epoch_number","or","batch","into","a","CSV","file",".","Args",":","filename","(","str",")",":","The","filename","of","the","CSV",".","batch_granularity","(","bool",")",":","Whether","to","also","output","the","result","of","each","batch","in","addition","to","the","epochs",".","(","Default","value","=","False",")","separator","(","str",")",":","The","separator","to","use","in","the","CSV",".","(","Default","value","=","'",",","'",")","append","(","bool",")",":","Whether","to","append","to","an","existing","file","."]
code: def __init__(
      self,
      filename: str,
      *,
      batch_granularity: bool = False,
      separator: str = ",",
      append: bool = False,
  ):
      super().__init__(batch_granularity=batch_granularity)
      self.filename = filename
      self.separator = separator
      self.append = append
  
imports: import csv
  import os
  from typing import Dict, Optional, TextIO
  from poutyne.framework.callbacks._utils import atomic_lambda_save
  from poutyne.framework.callbacks.callbacks import Callback
label_desc: Use image node_id 1 to create a new CSVLogger object from inherited base classes: Logger with example: obj = CSVLogger(filename)