alibi.utils.gradients.num_grad_batch(func, X, args=(), eps=1e-08)[source]

Calculate the numerical gradients of a vector-valued function (typically a prediction function in classification) with respect to a batch of arrays X.

Parameters
• func (Callable) – Function to be differentiated

• X (ndarray) – A batch of vectors at which to evaluate the gradient of the function

• args (Tuple) – Any additional arguments to pass to the function

• eps (Union[float, ndarray]) – Gradient step to use in the numerical calculation, can be a single float or one for each feature

Return type

ndarray

Returns

An array of gradients at each point in the batch X

alibi.utils.gradients.perturb(X, eps=1e-08, proba=False)[source]

Apply perturbation to instance or prediction probabilities. Used for numerical calculation of gradients.

Parameters
• X (ndarray) – Array to be perturbed

• eps (Union[float, ndarray]) – Size of perturbation

• proba (bool) – If True, the net effect of the perturbation needs to be 0 to keep the sum of the probabilities equal to 1

Return type

Tuple[ndarray, ndarray]

Returns

Instances where a positive and negative perturbation is applied.