class_docstr: Implementation of Query-Efficient Black-box Adversarial Examples. The attack approximates the gradient by
  maximizing the loss function over samples drawn from random Gaussian noise around the input.
  
  | Paper link: https://arxiv.org/abs/1712.07113
class_docstr_tok: ["Implementation","of","Query-Efficient","Black-box","Adversarial","Examples",".","The","attack","approximates","the","gradient","by","maximizing","the","loss","function","over","samples","drawn","from","random","Gaussian","noise","around","the","input",".","|","Paper","link",":","https",":","\/\/arxiv.org\/abs\/1712.07113"]
docstr: :param classifier: An instance of a classification estimator whose loss_gradient is being approximated.
  :param num_basis:  The number of samples to draw to approximate the gradient.
  :param sigma: Scaling on the Gaussian noise N(0,1).
  :param round_samples: The resolution of the input domain to round the data to, e.g., 1.0, or 1/255. Set to 0 to
                        disable.
docstr_tok: [":","param","classifier",":","An","instance","of","a","classification","estimator","whose","loss_gradient","is","being","approximated",".",":","param","num_basis",":","The","number","of","samples","to","draw","to","approximate","the","gradient",".",":","param","sigma",":","Scaling","on","the","Gaussian","noise","N","(","0,1",")",".",":","param","round_samples",":","The","resolution","of","the","input","domain","to","round","the","data","to",",","e.g.",",","1.0",",","or","1\/255",".","Set","to","0","to","disable","."]
code: def __init__(
      self,
      classifier: "CLASSIFIER_CLASS_LOSS_GRADIENTS_TYPE",
      num_basis: int,
      sigma: float,
      round_samples: float = 0.0,
  ) -> None:
      """
      :param classifier: An instance of a classification estimator whose loss_gradient is being approximated.
      :param num_basis:  The number of samples to draw to approximate the gradient.
      :param sigma: Scaling on the Gaussian noise N(0,1).
      :param round_samples: The resolution of the input domain to round the data to, e.g., 1.0, or 1/255. Set to 0 to
                            disable.
      """
      super().__init__(
          model=classifier.model, clip_values=classifier.clip_values
      )
      # pylint: disable=E0203
      self._classifier = classifier
      self.num_basis = num_basis
      self.sigma = sigma
      self.round_samples = round_samples
      self._nb_classes = self._classifier.nb_classes
  
file_path: adversarial-robustness-toolbox/art/estimators/classification/query_efficient_bb.py
imports: import logging
  from typing import List, Optional, Tuple, Union, TYPE_CHECKING
  import numpy
  from scipy.stats import entropy
  from art.estimators.estimator import BaseEstimator
  from art.estimators.classification.classifier import ClassifierMixin, ClassifierLossGradients
  from art.utils import clip_and_round
label_desc: Use image node_id 1 to create a new QueryEfficientGradientEstimationClassifier object from inherited base classes: ClassifierLossGradients, ClassifierMixin, BaseEstimator with example: obj = QueryEfficientGradientEstimationClassifier(classifier, num_basis, sigma, round_samples)