docstr: Post-processing function
  
  Parameters
  ----------
  X_cf
     Counterfactual instance. The datatype depends on the output of the decoder. For example, for an image
     dataset, the output is ``np.ndarray``. For a tabular dataset, the output is ``List[np.ndarray]`` where each
     element of the list corresponds to a feature. This corresponds to the decoder's output from the
     heterogeneous autoencoder (see :py:class:`alibi.models.tensorflow.autoencoder.HeAE` and
     :py:class:`alibi.models.pytorch.autoencoder.HeAE`).
  X
     Input instance.
  C
     Conditional vector. If ``None``, it means that no conditioning was used during training (i.e. the
     `conditional_func` returns ``None``).
  
  Returns
  -------
  X_cf
      Post-processed `X_cf`.
code: def __call__(
      self, X_cf: Any, X: np.ndarray, C: Optional[np.ndarray]
  ) -> Any:
      """
      Post-processing function
  
      Parameters
      ----------
      X_cf
         Counterfactual instance. The datatype depends on the output of the decoder. For example, for an image
         dataset, the output is ``np.ndarray``. For a tabular dataset, the output is ``List[np.ndarray]`` where each
         element of the list corresponds to a feature. This corresponds to the decoder's output from the
         heterogeneous autoencoder (see :py:class:`alibi.models.tensorflow.autoencoder.HeAE` and
         :py:class:`alibi.models.pytorch.autoencoder.HeAE`).
      X
         Input instance.
      C
         Conditional vector. If ``None``, it means that no conditioning was used during training (i.e. the
         `conditional_func` returns ``None``).
  
      Returns
      -------
      X_cf
          Post-processed `X_cf`.
      """
      pass
  
imports: import logging
  import os
  from abc import ABC, abstractmethod
  from copy import deepcopy
  from typing import TYPE_CHECKING, Any, Callable, Dict, Optional, Tuple, Union, cast
  import numpy
  from tqdm import tqdm
  from alibi.api.defaults import DEFAULT_DATA_CFRL, DEFAULT_META_CFRL
  from alibi.api.interfaces import Explainer, Explanation, FitMixin
  from alibi.explainers.backends.cfrl_base import generate_empty_condition, get_classification_reward, get_hard_distribution, identity_function
  from alibi.utils.frameworks import Framework, has_pytorch, has_tensorflow
label_desc: Use image node_id 1 for calling the Postprocessing obj's underlying member method code with example usage: obj.__call__(X_cf, X, C) without return types