class_docstr: Base class for all class accuracy plugin metrics
code: def update(self, strategy: "SupervisedTemplate"):
      assert strategy.mb_output is not None
      assert strategy.experience is not None
      self._metric.update(
          strategy.mb_output, strategy.mb_y, strategy.mb_task_id
      )
  
      self.phase_name = "train" if strategy.is_training else "eval"
      self.stream_name = strategy.experience.origin_stream.name
      self.experience_id = strategy.experience.current_experience
  
imports: from typing import Dict, List, Set, Union, TYPE_CHECKING, Iterable, Optional
  from collections import defaultdict, OrderedDict
  import torch
  from torch import Tensor
  from avalanche.evaluation import Metric, PluginMetric, _ExtendedGenericPluginMetric, _ExtendedPluginMetricValue
  from avalanche.evaluation.metric_utils import default_metric_name_template, generic_get_metric_name
  from avalanche.evaluation.metrics import Mean
label_desc: Use image node_id 2 for calling the ClassAccuracyPluginMetric obj's underlying member method code with example usage: obj.update(strategy) without return types