class_docstr: A callback that stores plots of the  predictions for a collection of samples every n epochs.
  The plots display the query (past and future), forecasted quantiles and the time series in the support set
  of this sample aligned with their attention scores. This callback works only for models with attention mechanism!
  
  Args:
      log_batch: For each sample in the batch the prediction is plotted when the callback is called.
          The batch size should not be too large (i.e. < 10).
      quantiles: The quantiles that are predicted.
      split: Specifies the split the batch comes from (i.e. from training or validation split)
      every_n_epochs: Specifies how often the plots are generated.
          Setting this to a large value can save time since plotting can be time consuming
          (especially when small datasets are used).
class_docstr_tok: ["A","callback","that","stores","plots","of","the","predictions","for","a","collection","of","samples","every","n","epochs",".","The","plots","display","the","query","(","past","and","future",")",",","forecasted","quantiles","and","the","time","series","in","the","support","set","of","this","sample","aligned","with","their","attention","scores",".","This","callback","works","only","for","models","with","attention","mechanism","!","Args",":","log_batch",":","For","each","sample","in","the","batch","the","prediction","is","plotted","when","the","callback","is","called",".","The","batch","size","should","not","be","too","large","(","i.e",".","<","10",")",".","quantiles",":","The","quantiles","that","are","predicted",".","split",":","Specifies","the","split","the","batch","comes","from","(","i.e",".","from","training","or","validation","split",")","every_n_epochs",":","Specifies","how","often","the","plots","are","generated",".","Setting","this","to","a","large","value","can","save","time","since","plotting","can","be","time","consuming","(","especially","when","small","datasets","are","used",")","."]
code: def __init__(
      self,
      log_batch: TripletBatch,
      quantiles: List[str],
      split: Optional[Union["train", "val"]] = None,
      every_n_epochs: int = 1,
  ):
      super().__init__()
      self.log_batch = log_batch
      self.quantiles = quantiles
      self.split = split
      self.every_n_epochs = every_n_epochs
  
imports: from typing import Optional, Union, List
  from pytorch_lightning import Callback, Trainer
  import matplotlib.pyplot
  from meta.data.batch import TripletBatch
  from meta.models.module import MetaLightningModule
  from .common import get_save_dir_from_csvlogger, get_loss_steps
  from meta.data.batch import SeriesBatch
  from meta.vis.forecast import plot_quantile_forecast, plot_forecast_supportset_attention
label_desc: Use image node_id 1 to create a new ForecastSupportSetAttentionPlotLoggerCallback object from inherited base classes: Callback with example: obj = ForecastSupportSetAttentionPlotLoggerCallback(log_batch, quantiles, split, every_n_epochs)