class_docstr: A combiner which computes cross entropy metrics.
  
  Two importnat parameters for cross entropy calcualtion.
    from_logits: (Optional) Whether output is expected to be a logits tensor.
      By default, we consider that output encodes a probability distribution.
    label_smoothing: Float in [0, 1]. If > `0` then smooth the labels. For
      example, if `0.1`, use `0.1 / num_classes` for non-target labels and
      `0.9 + 0.1 / num_classes` for target labels.
code: def __init__(
      self,
      eval_config: config_pb2.EvalConfig,
      model_name: str,
      output_name: str,
      metric_key: metric_types.MetricKey,
      aggregation_type: Optional[metric_types.AggregationType],
      class_weights: Optional[Dict[int, float]],
      example_weighted: bool,
      from_logits: bool = False,
      label_smoothing: float = 0.0,
  ):
      self._eval_config = eval_config
      self._model_name = model_name
      self._output_name = output_name
      self._metric_key = metric_key
      self._example_weighted = example_weighted
      self._aggregation_type = aggregation_type
      self._class_weights = class_weights
      self._from_logits = from_logits
      self._label_smoothing = label_smoothing
  
imports: import abc
  import dataclasses
  from typing import Iterable, Optional, Dict
  import apache_beam
  import numpy
  from tensorflow_model_analysis.metrics import metric_types
  from tensorflow_model_analysis.metrics import metric_util
  from tensorflow_model_analysis.proto import config_pb2
label_desc: Use image node_id 1 to create a new _CrossEntropyCombiner object from inherited base classes: beam with example: obj = _CrossEntropyCombiner(eval_config, model_name, output_name, metric_key, aggregation_type, class_weights, example_weighted, from_logits, label_smoothing)