class_docstr: Poison specified images by adding a mask with given opacity.
  Operates on raw arrays (not tensors).
  
  Parameters
  ----------
  mask : ndarray
      The mask to apply to each image.
  alpha: float
      The opacity of the mask.
  indices : Sequence[int]
      The indices of images that should have the mask applied.
  clamp : Tuple[int, int]
      Clamps the final pixel values between these two values (default: (0, 255)).
class_docstr_tok: ["Poison","specified","images","by","adding","a","mask","with","given","opacity",".","Operates","on","raw","arrays","(","not","tensors",")",".","Parameters","--","--","--","--","--","mask",":","ndarray","The","mask","to","apply","to","each","image",".","alpha",":","float","The","opacity","of","the","mask",".","indices",":","Sequence","[","int","]","The","indices","of","images","that","should","have","the","mask","applied",".","clamp",":","Tuple","[","int",",","int","]","Clamps","the","final","pixel","values","between","these","two","values","(","default",":","(","0",",","255",")",")","."]
code: def __init__(
      self, mask: np.ndarray, alpha: np.ndarray, indices, clamp=(0, 255)
  ):
      super().__init__()
      self.mask = mask
      self.indices = np.sort(indices)
      self.clamp = clamp
      self.alpha = alpha
  
file_path: ffcv/ffcv/transforms/poisoning.py
imports: from typing import Tuple
  from dataclasses import replace
  import numpy
  from typing import Callable, Optional, Tuple
  from ..pipeline.allocation_query import AllocationQuery
  from ..pipeline.operation import Operation
  from ..pipeline.state import State
  from ..pipeline.compiler import Compiler
label_desc: Use image node_id 1 to create a new Poison object from inherited base classes: Operation with example: obj = Poison(mask, alpha, indices, clamp)