class_docstr: Local Search Attack
  Algorithm 3 in https://arxiv.org/pdf/1612.06299.pdf
  
  :param predict: forward pass function.
  :param clip_min: mininum value per input dimension.
  :param clip_max: maximum value per input dimension.
  :param p: parameter controls pixel complexity
  :param r: perturbation value
  :param loss_fn: loss function
  :param d: the half side length of the neighbourhood square
  :param t: the number of pixels perturbed at each round
  :param k: the threshold for k-misclassification
  :param round_ub: an upper bound on the number of rounds
code: def _perturb_seed_pixel(self, x, p, row, col):
      x_pert = replicate_input(x)
      for ii in range(x.shape[0]):
          if x[ii, row, col] > 0:
              x_pert[ii, row, col] = p
          elif x[ii, row, col] < 0:
              x_pert[ii, row, col] = -1 * p
          else:
              x_pert[ii, row, col] = 0
      return x_pert
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from __future__ import unicode_literals
  import numpy
  import torch
  import torch.nn
  from advertorch.utils import clamp
  from advertorch.utils import replicate_input
  from .base import Attack
  from .base import LabelMixin
  from .utils import is_successful
label_desc: Use image node_id 7 for calling the LocalSearchAttack obj's underlying member method code with example usage: obj._perturb_seed_pixel(x, p, row, col) and returns: x_pert