code: def __init__(
      self,
      label_names: List[str],
      channels: List[Channel],
      model_select_metric: ComparableClassificationMetric = (
          ComparableClassificationMetric.ACCURACY
      ),
      target_label: Optional[str] = None,
      text_column_names: List[str] = Config.text_column_names,
      additional_column_names: List[
          str
      ] = Config.additional_column_names,
      recall_at_precision_thresholds: List[float] = (
          Config.recall_at_precision_thresholds
      ),
      is_memory_efficient: bool = Config.is_memory_efficient,
  ) -> None:
      super().__init__(channels)
      self.label_names = label_names
      self.model_select_metric = model_select_metric
      self.target_label = target_label
      self.text_column_names = text_column_names
      self.additional_column_names = additional_column_names
      self.recall_at_precision_thresholds = (
          recall_at_precision_thresholds
      )
      self.is_memory_efficient = is_memory_efficient
  
imports: from enum import Enum
  from itertools import tee, zip_longest
  from typing import Generator, List, Optional, Sequence
  import torch
  from pytext.common.constants import Stage
  from pytext.data import CommonMetadata
  from pytext.metrics import ClassificationMetrics, compute_classification_metrics, compute_multi_label_classification_metrics, LabelListPrediction, LabelPrediction, LabelTopKPrediction, RECALL_AT_PRECISION_THRESHOLDS, safe_division
  from pytext.metrics.intent_slot_metrics import PerLabelConfusions
  from .channel import Channel, ConsoleChannel, FileChannel
  from .metric_reporter import MetricReporter
label_desc: Use image node_id 1 to create a new ClassificationMetricReporter object from inherited base classes: MetricReporter with example: obj = ClassificationMetricReporter(label_names, channels, model_select_metric, target_label, text_column_names, additional_column_names, recall_at_precision_thresholds, is_memory_efficient)