# alibi_detect.utils.tensorflow package¶

alibi_detect.utils.tensorflow.mmd2(x, y, kernel)[source]

Compute MMD^2 between 2 samples.

Parameters
• x (Tensor) – Batch of instances of shape [Nx, features].

• y (Tensor) – Batch of instances of shape [Ny, features].

• kernel (Callable) – Kernel function.

Return type

float

Returns

MMD^2 between the samples x and y.

alibi_detect.utils.tensorflow.mmd2_from_kernel_matrix(kernel_mat, m, permute=False, zero_diag=True)[source]

Compute maximum mean discrepancy (MMD^2) between 2 samples x and y from the full kernel matrix between the samples.

Parameters
• kernel_mat (Tensor) – Kernel matrix between samples x and y.

• m (int) – Number of instances in y.

• permute (bool) – Whether to permute the row indices. Used for permutation tests.

• zero_diag (bool) – Whether to zero out the diagonal of the kernel matrix.

Return type

Tensor

Returns

MMD^2 between the samples from the kernel matrix.

alibi_detect.utils.tensorflow.relative_euclidean_distance(x, y, eps=1e-12, axis=-1)[source]

Relative Euclidean distance.

Parameters
• x (Tensor) – Tensor used in distance computation.

• y (Tensor) – Tensor used in distance computation.

• eps (float) – Epsilon added to denominator for numerical stability.

• axis (int) – Axis used to compute distance.

Return type

Tensor

Returns

Tensor with relative Euclidean distance across specified axis.

alibi_detect.utils.tensorflow.squared_pairwise_distance(x, y, a_min=1e-30, a_max=1e+30)[source]

TensorFlow pairwise squared Euclidean distance between samples x and y.

Parameters
• x (Tensor) – Batch of instances of shape [Nx, features].

• y (Tensor) – Batch of instances of shape [Ny, features].

• a_min (float) – Lower bound to clip distance values.

• a_max (float) – Upper bound to clip distance values.

Return type

Tensor

Returns

Pairwise squared Euclidean distance [Nx, Ny].

class alibi_detect.utils.tensorflow.GaussianRBF(sigma=None)[source]

Bases: object

__init__(sigma=None)[source]

Gaussian RBF kernel: k(x,y) = exp(-(1/(2*sigma^2)||x-y||^2). A forward pass takes a batch of instances x [Nx, features] and y [Ny, features] and returns the kernel matrix [Nx, Ny].

Parameters

sigma (Optional[Tensor]) – Optional sigma used for the kernel.

Return type

None

alibi_detect.utils.tensorflow.permed_lsdds(k_all_c, x_perms, y_perms, H, H_lam_inv=None, lam_rd_max=0.2, return_unpermed=False)[source]

Compute LSDD estimates from kernel matrix across various ref and test window samples

Parameters
• k_all_c (Tensor) – Kernel matrix of simmilarities between all samples and the kernel centers.

• x_perms (List[Tensor]) – List of B reference window index vectors

• y_perms (List[Tensor]) – List of B test window index vectors

• H (Tensor) – Special (scaled) kernel matrix of simmilarities between kernel centers

• H_lam_inv (Optional[Tensor]) – Function of H corresponding to a particular regulariation parameter lambda. See Eqn 11 of Bu et al. (2017)

• lam_rd_max (float) – The maximum relative difference between two estimates of LSDD that the regularization parameter lambda is allowed to cause. Defaults to 0.2. Only relavent if H_lam_inv is not supplied.

• return_unpermed (bool) – Whether or not to return value corresponding to unpermed order defined by k_all_c

Return type

Union[Tuple[Tensor, Tensor], Tuple[Tensor, Tensor, Tensor]]

Returns

• Vector of B LSDD estimates for each permutation, H_lam_inv which may have been inferred, and optionally

• the unpermed LSDD estimate.

alibi_detect.utils.tensorflow.predict_batch(x, model, batch_size=10000000000, preprocess_fn=None, dtype=numpy.float32)[source]

Make batch predictions on a model.

Parameters
Return type

Union[ndarray, Tensor, tuple]

Returns

Numpy array, tensorflow tensor or tuples of those with model outputs.

alibi_detect.utils.tensorflow.predict_batch_transformer(x, model, tokenizer, max_len, batch_size=10000000000, dtype=numpy.float32)[source]

Make batch predictions using a transformers tokenizer and model.

Parameters
Return type

Union[ndarray, Tensor]

Returns

Numpy array or tensorflow tensor with model outputs.

alibi_detect.utils.tensorflow.quantile(sample, p, type=7, sorted=False)[source]

Estimate a desired quantile of a univariate distribution from a vector of samples

Parameters
Return type

float

Returns

An estimate of the quantile

alibi_detect.utils.tensorflow.subset_matrix(mat, inds_0, inds_1)[source]

Take a matrix and return the submatrix correspond to provided row and column indices

Parameters
• mat (Tensor) – A 2D matrix

• inds_0 (Tensor) – A vector of row indices

• inds_1 (Tensor) – A vector of column indices

Return type

Tensor

Returns

A submatrix of shape (len(inds_0), len(inds_1))

alibi_detect.utils.tensorflow.zero_diag(mat)[source]

Set the diagonal of a matrix to 0

Parameters

mat (Tensor) – A 2D square matrix

Return type

Tensor

Returns

A 2D square matrix with zeros along the diagonal