class_docstr: Implementation of Randomized Smoothing applied to classifier predictions and gradients, as introduced
  in Cohen et al. (2019).
  
  | Paper link: https://arxiv.org/abs/1902.02918
code: def get_activations(
      self,
      x: np.ndarray,
      layer: Union[int, str],
      batch_size: int,
      framework: bool = False,
  ) -> np.ndarray:
      return self.classifier.get_activations(  # type: ignore
          x=x, layer=layer, batch_size=batch_size, framework=framework
      )
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from typing import List, Optional, Union, TYPE_CHECKING, Tuple
  import warnings
  import numpy
  from art.config import ART_NUMPY_DTYPE
  from art.estimators.estimator import BaseEstimator, LossGradientsMixin, NeuralNetworkMixin
  from art.estimators.certification.randomized_smoothing.randomized_smoothing import RandomizedSmoothingMixin
  from art.estimators.classification import ClassifierMixin, ClassGradientsMixin
  from art.defences.preprocessor.gaussian_augmentation import GaussianAugmentation
label_desc: Use image node_id 8 for calling the NumpyRandomizedSmoothing obj's underlying member method code with example usage: obj.get_activations(x, layer, batch_size, framework) and returns: self