class_docstr: Implementation of the adversarial patch attack for square and rectangular images and videos in TensorFlow v2.
  
  | Paper link: https://arxiv.org/abs/1712.09665
code: def _loss(
      self,
      images: "tf.Tensor",
      target: "tf.Tensor",
      mask: Optional["tf.Tensor"],
  ) -> "tf.Tensor":
      import tensorflow as tf
  
      predictions = self._predictions(images, mask)
  
      self._loss_per_example = tf.keras.losses.categorical_crossentropy(
          y_true=target,
          y_pred=predictions,
          from_logits=self.use_logits,
          label_smoothing=0,
      )
  
      loss = tf.reduce_mean(self._loss_per_example)
  
      return loss
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  import math
  from typing import Optional, Tuple, Union, TYPE_CHECKING
  import numpy
  from tqdm.auto import trange
  from art.attacks.attack import EvasionAttack
  from art.attacks.evasion.adversarial_patch.utils import insert_transformed_patch
  from art.estimators.estimator import BaseEstimator, NeuralNetworkMixin
  from art.estimators.classification.classifier import ClassifierMixin
  from art.utils import check_and_transform_label_format, is_probability, to_categorical
  from art.summary_writer import SummaryWriter
label_desc: Use image node_id 4 for calling the AdversarialPatchTensorFlowV2 obj's underlying member method code with example usage: obj._loss(images, target, mask) and returns: loss