class_docstr: Reduces the contrast of the input using a binary search to find the
  smallest adversarial perturbation
  
  Args:
      distance : Distance measure for which minimal adversarial examples are searched.
      binary_search_steps : Number of iterations in the binary search.
          This controls the precision of the results.
      target : Target relative to the bounds from 0 (min) to 1 (max)
          towards which the contrast is reduced
class_docstr_tok: ["Reduces","the","contrast","of","the","input","using","a","binary","search","to","find","the","smallest","adversarial","perturbation","Args",":","distance",":","Distance","measure","for","which","minimal","adversarial","examples","are","searched",".","binary_search_steps",":","Number","of","iterations","in","the","binary","search",".","This","controls","the","precision","of","the","results",".","target",":","Target","relative","to","the","bounds","from","0","(","min",")","to","1","(","max",")","towards","which","the","contrast","is","reduced"]
code: def __init__(
      self,
      *,
      distance: Optional[Distance] = None,
      binary_search_steps: int = 15,
      target: float = 0.5,
  ):
      super().__init__(distance=distance)
      self.binary_search_steps = binary_search_steps
      self.target = target
  
file_path: foolbox/foolbox/attacks/contrast_min.py
imports: from typing import Union, Any, Optional
  import eagerpy
  from ..devutils import atleast_kd
  from ..models import Model
  from ..criteria import Criterion
  from ..distances import Distance
  from .base import FlexibleDistanceMinimizationAttack
  from .base import T
  from .base import get_is_adversarial
  from .base import get_criterion
  from .base import raise_if_kwargs
  from .base import verify_input_bounds
label_desc: Use image node_id 1 to create a new BinarySearchContrastReductionAttack object from inherited base classes: FlexibleDistanceMinimizationAttack with example: obj = BinarySearchContrastReductionAttack()