class_docstr: Graph robust neural architecture estimator under adversarial attack.
  
  Use model directly to get estimations.
  
  Parameters
  ----------
  loss_f : str
      The name of loss funciton in PyTorch
  evaluation : list of Evaluation
      The evaluation metrics in module/train/evaluation
      GRNA_metric = acc_metric+ robustness_metric
  lambda: float
      The hyper-parameter to balance the accuracy metric and robustness metric to perform ultimate evaluation
  perturb_type: str
      Perturbation methods to simulate the adversarial attack process
  adv_sample_num: int
      Adversarial sample number used in measure architecture robustness.
class_docstr_tok: ["Graph","robust","neural","architecture","estimator","under","adversarial","attack",".","Use","model","directly","to","get","estimations",".","Parameters","--","--","--","--","--","loss_f",":","str","The","name","of","loss","funciton","in","PyTorch","evaluation",":","list","of","Evaluation","The","evaluation","metrics","in","module\/train\/evaluation","GRNA_metric","=","acc_metric+","robustness_metric","lambda",":","float","The","hyper-parameter","to","balance","the","accuracy","metric","and","robustness","metric","to","perform","ultimate","evaluation","perturb_type",":","str","Perturbation","methods","to","simulate","the","adversarial","attack","process","adv_sample_num",":","int","Adversarial","sample","number","used","in","measure","architecture","robustness","."]
code: def __init__(
      self,
      loss_f="nll_loss",
      evaluation=[Acc()],
      lambda_=0.05,
      perturb_type="random",
      adv_sample_num=10,
      dis_type="ce",
      ptbr=0.05,
  ):
      super().__init__(loss_f, evaluation)
      self.evaluation = evaluation
      self.lambda_ = lambda_
      self.perturb_type = perturb_type
      self.dis_type = dis_type
      self.adv_sample_num = adv_sample_num
      self.ptbr = ptbr
      print("initialize GRNA estimator")
  
file_path: AutoGL/autogl/module/nas/estimator/grna_estimator.py
imports: import torch
  from deeprobust.graph.global_attack import Random, DICE
  import numpy
  import scipy.sparse
  from tqdm import tqdm
  import time
  import torch.nn.functional
  from .None import register_nas_estimator
  from ..space import BaseSpace
  from .base import BaseEstimator
  from ..backend import *
  from ...train.evaluation import Acc
  from ..utils import get_hardware_aware_metric
label_desc: Use image node_id 1 to create a new GRNAEstimator object from inherited base classes: BaseEstimator with example: obj = GRNAEstimator(loss_f, evaluation, lambda_, perturb_type, adv_sample_num, dis_type, ptbr)