class_docstr: Generic class for attacker steps, under perturbation constraints
  specified by an "origin input" and a perturbation magnitude.
  Must implement project, step, and random_perturb
class_docstr_tok: ["Generic","class","for","attacker","steps",",","under","perturbation","constraints","specified","by","an","``","origin","input","''","and","a","perturbation","magnitude",".","Must","implement","project",",","step",",","and","random_perturb"]
docstr: Given an input x, project it back into the feasible set
  
  Args:
      ch.tensor x : the input to project back into the feasible set.
  
  Returns:
      A `ch.tensor` that is the input projected back into
      the feasible set, that is,
  .. math:: \min_{x' \in S} \|x' - x\|_2
docstr_tok: ["Given","an","input","x",",","project","it","back","into","the","feasible","set","Args",":","ch.tensor","x",":","the","input","to","project","back","into","the","feasible","set",".","Returns",":","A","`","ch.tensor","`","that","is","the","input","projected","back","into","the","feasible","set",",","that","is",",","..","math",":",":","\\min_","{","x","'","\\in","S","}","\\|x","'","-","x\\|_2"]
code: def project(self, x):
      """
      Given an input x, project it back into the feasible set
  
      Args:
          ch.tensor x : the input to project back into the feasible set.
  
      Returns:
          A `ch.tensor` that is the input projected back into
          the feasible set, that is,
      .. math:: \min_{x' \in S} \|x' - x\|_2
      """
      raise NotImplementedError
  
imports: import torch
label_desc: Use image node_id 2 for calling the AttackerStep obj's underlying member method code with example usage: obj.project(x) without return types