class_docstr: Implement the standardisation with mean and standard deviation.
class_docstr_tok: ["Implement","the","standardisation","with","mean","and","standard","deviation","."]
docstr: Provide an estimate of the gradients of preprocessor for the backward pass. If the preprocessor is not
  differentiable, this is an estimate of the gradient, most often replacing the computation performed by the
  preprocessor with the identity function (the default).
  
  :param x: Input data for which the gradient is estimated. First dimension is the batch size.
  :param grad: Gradient value so far.
  :return: The gradient (estimate) of the defence.
docstr_tok: ["Provide","an","estimate","of","the","gradients","of","preprocessor","for","the","backward","pass",".","If","the","preprocessor","is","not","differentiable",",","this","is","an","estimate","of","the","gradient",",","most","often","replacing","the","computation","performed","by","the","preprocessor","with","the","identity","function","(","the","default",")",".",":","param","x",":","Input","data","for","which","the","gradient","is","estimated",".","First","dimension","is","the","batch","size",".",":","param","grad",":","Gradient","value","so","far",".",":","return",":","The","gradient","(","estimate",")","of","the","defence","."]
code: def estimate_gradient(
      self, x: np.ndarray, grad: np.ndarray
  ) -> np.ndarray:
      """
      Provide an estimate of the gradients of preprocessor for the backward pass. If the preprocessor is not
      differentiable, this is an estimate of the gradient, most often replacing the computation performed by the
      preprocessor with the identity function (the default).
  
      :param x: Input data for which the gradient is estimated. First dimension is the batch size.
      :param grad: Gradient value so far.
      :return: The gradient (estimate) of the defence.
      """
      _, std = broadcastable_mean_std(x, self.mean, self.std)
      gradient_back = grad / std
  
      return gradient_back
  
file_path: adversarial-robustness-toolbox/art/preprocessing/standardisation_mean_std/numpy.py
imports: import logging
  from typing import Optional, Tuple, Union
  import numpy
  from art.config import ART_NUMPY_DTYPE
  from art.preprocessing.preprocessing import Preprocessor
  from art.preprocessing.standardisation_mean_std.utils import broadcastable_mean_std
label_desc: Use image node_id 3 for calling the StandardisationMeanStd obj's underlying member method code with example usage: obj.estimate_gradient(x, grad) and returns: gradient_back