class_docstr: A black-box algorithm for L-infinity adversarials. [#Alz18]_
  
  This attack is performs a genetic search in order to find an adversarial
  perturbation in a black-box scenario in as few queries as possible.
  
  References:
      .. [#Alz18] Moustafa Alzantot, Yash Sharma, Supriyo Chakraborty, Huan Zhang,
         Cho-Jui Hsieh, Mani Srivastava,
         "GenAttack: Practical Black-box Attacks with Gradient-Free
         Optimization",
         https://arxiv.org/abs/1805.11090
class_docstr_tok: ["A","black-box","algorithm","for","L-infinity","adversarials",".","[","#","Alz18","]","_","This","attack","is","performs","a","genetic","search","in","order","to","find","an","adversarial","perturbation","in","a","black-box","scenario","in","as","few","queries","as","possible",".","References",":","..","[","#","Alz18","]","Moustafa","Alzantot",",","Yash","Sharma",",","Supriyo","Chakraborty",",","Huan","Zhang",",","Cho-Jui","Hsieh",",","Mani","Srivastava",",","``","GenAttack",":","Practical","Black-box","Attacks","with","Gradient-Free","Optimization","''",",","https",":","\/\/arxiv.org\/abs\/1805.11090"]
code: def __init__(
      self,
      *,
      steps: int = 1000,
      population: int = 10,
      mutation_probability: float = 0.10,
      mutation_range: float = 0.15,
      sampling_temperature: float = 0.3,
      channel_axis: Optional[int] = None,
      reduced_dims: Optional[Tuple[int, int]] = None,
  ):
      self.steps = steps
      self.population = population
      self.min_mutation_probability = mutation_probability
      self.min_mutation_range = mutation_range
      self.sampling_temperature = sampling_temperature
      self.channel_axis = channel_axis
      self.reduced_dims = reduced_dims
  
file_path: foolbox/foolbox/attacks/gen_attack.py
imports: from typing import Optional, Any, Tuple, Union
  import numpy
  import eagerpy
  from ..devutils import atleast_kd
  from ..models import Model
  from ..criteria import TargetedMisclassification
  from ..distances import linf
  from .base import FixedEpsilonAttack
  from .base import T
  from .base import get_channel_axis
  from .base import raise_if_kwargs
  from .base import verify_input_bounds
  import math
  from .gen_attack_utils import rescale_images
label_desc: Use image node_id 1 to create a new GenAttack object from inherited base classes: FixedEpsilonAttack with example: obj = GenAttack()