class_docstr: Implements ``Wasserstein Adversarial Examples via Projected Sinkhorn Iterations`` as evasion attack.
  
  | Paper link: https://arxiv.org/abs/1902.07906
class_docstr_tok: ["Implements","``","Wasserstein","Adversarial","Examples","via","Projected","Sinkhorn","Iterations","``","as","evasion","attack",".","|","Paper","link",":","https",":","\/\/arxiv.org\/abs\/1902.07906"]
docstr: Function to evaluate the objective of the projected sinkhorn optimizer.
  
  :param x: Current adversarial examples.
  :param x_init: An array with the original inputs.
  :param alpha: Alpha parameter in Algorithm 2 of the paper ``Wasserstein Adversarial Examples via Projected
      Sinkhorn Iterations``.
  :param exp_alpha: Exponential of alpha.
  :param beta: Beta parameter in Algorithm 2 of the paper ``Wasserstein Adversarial Examples via Projected
      Sinkhorn Iterations``.
  :param exp_beta: Exponential of beta.
  :param psi: Psi parameter in Algorithm 2 of the paper ``Wasserstein Adversarial Examples via Projected
      Sinkhorn Iterations``.
  :param var_k: K parameter in Algorithm 2 of the paper ``Wasserstein Adversarial Examples via Projected
      Sinkhorn Iterations``.
  :param eps: Maximum perturbation that the attacker can introduce.
  :return: Evaluation result.
docstr_tok: ["Function","to","evaluate","the","objective","of","the","projected","sinkhorn","optimizer",".",":","param","x",":","Current","adversarial","examples",".",":","param","x_init",":","An","array","with","the","original","inputs",".",":","param","alpha",":","Alpha","parameter","in","Algorithm","2","of","the","paper","``","Wasserstein","Adversarial","Examples","via","Projected","Sinkhorn","Iterations","``",".",":","param","exp_alpha",":","Exponential","of","alpha",".",":","param","beta",":","Beta","parameter","in","Algorithm","2","of","the","paper","``","Wasserstein","Adversarial","Examples","via","Projected","Sinkhorn","Iterations","``",".",":","param","exp_beta",":","Exponential","of","beta",".",":","param","psi",":","Psi","parameter","in","Algorithm","2","of","the","paper","``","Wasserstein","Adversarial","Examples","via","Projected","Sinkhorn","Iterations","``",".",":","param","var_k",":","K","parameter","in","Algorithm","2","of","the","paper","``","Wasserstein","Adversarial","Examples","via","Projected","Sinkhorn","Iterations","``",".",":","param","eps",":","Maximum","perturbation","that","the","attacker","can","introduce",".",":","return",":","Evaluation","result","."]
code: def _projected_sinkhorn_evaluation(
      self,
      x: np.ndarray,
      x_init: np.ndarray,
      alpha: np.ndarray,
      exp_alpha: np.ndarray,
      beta: np.ndarray,
      exp_beta: np.ndarray,
      psi: np.ndarray,
      var_k: np.ndarray,
      eps: np.ndarray,
  ) -> np.ndarray:
      """
      Function to evaluate the objective of the projected sinkhorn optimizer.
  
      :param x: Current adversarial examples.
      :param x_init: An array with the original inputs.
      :param alpha: Alpha parameter in Algorithm 2 of the paper ``Wasserstein Adversarial Examples via Projected
          Sinkhorn Iterations``.
      :param exp_alpha: Exponential of alpha.
      :param beta: Beta parameter in Algorithm 2 of the paper ``Wasserstein Adversarial Examples via Projected
          Sinkhorn Iterations``.
      :param exp_beta: Exponential of beta.
      :param psi: Psi parameter in Algorithm 2 of the paper ``Wasserstein Adversarial Examples via Projected
          Sinkhorn Iterations``.
      :param var_k: K parameter in Algorithm 2 of the paper ``Wasserstein Adversarial Examples via Projected
          Sinkhorn Iterations``.
      :param eps: Maximum perturbation that the attacker can introduce.
      :return: Evaluation result.
      """
      return (
          -0.5 / self.regularization * self._batch_dot(beta, beta)
          - psi * eps
          - self._batch_dot(np.minimum(alpha, 1e10), x_init)
          - self._batch_dot(np.minimum(beta, 1e10), x)
          - self._batch_dot(
              exp_alpha,
              self._local_transport(var_k, exp_beta, self.kernel_size),
          )
      )
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from typing import Optional, TYPE_CHECKING
  import numpy
  from scipy.special import lambertw
  from tqdm.auto import trange
  from art.config import ART_NUMPY_DTYPE
  from art.estimators.estimator import BaseEstimator, LossGradientsMixin
  from art.estimators.classification.classifier import ClassifierMixin
  from art.attacks.attack import EvasionAttack
  from art.utils import get_labels_np_array, check_and_transform_label_format
label_desc: Use image node_id 13 for calling the Wasserstein obj's underlying member method code with example usage: obj._projected_sinkhorn_evaluation(x, x_init, alpha, exp_alpha, beta, exp_beta, psi, var_k, eps) and returns: unknown