docstr: Creates the CumulativeAccuracy plugin metric,
  this stores and updates the Cumulative Accuracy metric described in
  "On the importance of cross-task
  features for class-incremental learning"
  Soutif et. al, https://arxiv.org/abs/2106.11930
docstr_tok: ["Creates","the","CumulativeAccuracy","plugin","metric",",","this","stores","and","updates","the","Cumulative","Accuracy","metric","described","in","''","On","the","importance","of","cross-task","features","for","class-incremental","learning","''","Soutif","et",".","al",",","https",":","\/\/arxiv.org\/abs\/2106.11930"]
code: def __init__(self, reset_at="stream", emit_at="stream", mode="eval"):
      """
      Creates the CumulativeAccuracy plugin metric,
      this stores and updates the Cumulative Accuracy metric described in
      "On the importance of cross-task
      features for class-incremental learning"
      Soutif et. al, https://arxiv.org/abs/2106.11930
      """
  
      self.classes_seen_so_far = set()
      self.classes_splits = {}
      super().__init__(
          CumulativeAccuracy(),
          reset_at=reset_at,
          emit_at=emit_at,
          mode=mode,
      )
  
imports: from collections import defaultdict
  from typing import Dict, List, Union, TYPE_CHECKING
  import numpy
  import torch
  from torch import Tensor
  from avalanche.benchmarks import OnlineCLExperience
  from avalanche.evaluation import GenericPluginMetric, Metric, PluginMetric
  from avalanche.evaluation.metrics.mean import Mean
  from avalanche.evaluation.metric_utils import phase_and_task, stream_type, generic_get_metric_name, default_metric_name_template
  from avalanche.evaluation.metric_results import MetricValue
label_desc: Use image node_id 1 to create a new CumulativeAccuracyPluginMetric object from inherited base classes: GenericPluginMetric with example: obj = CumulativeAccuracyPluginMetric(reset_at, emit_at, mode)