class_docstr: ARSOptimizer is supposed to maximize an objective function
docstr: Return tuples of (pos_param, neg_param)
docstr_tok: ["Return","tuples","of","(","pos_param",",","neg_param",")"]
code: def sample_perturbed_params(self):
      """Return tuples of (pos_param, neg_param)"""
      self.perturbations = []
      perturbed_params = []
      for _ in range(self.n_pert):
          pert = np.random.randn(self.feature_dim)
          self.perturbations.append(pert)
          perturbed_params.append(
              (
                  torch.from_numpy(
                      self.ars_params + self.noise * pert
                  ).float(),
                  torch.from_numpy(
                      self.ars_params - self.noise * pert
                  ).float(),
              )
          )
      return perturbed_params
  
imports: from operator import itemgetter
  import numpy
  import torch
label_desc: Use image node_id 3 for calling the ARSOptimizer obj's underlying member method code with example usage: obj.sample_perturbed_params() and returns: perturbed_params