class_docstr: Evaluator is used to check parameter correctness, and summarize the results of all metrics.
docstr: calculate all the metrics. It is called at the end of each epoch
  
  Args:
      dataobject (DataStruct): It contains all the information needed for metrics.
  
  Returns:
      collections.OrderedDict: such as ``{'hit@20': 0.3824, 'recall@20': 0.0527, 'hit@10': 0.3153, 'recall@10': 0.0329, 'gauc': 0.9236}``
docstr_tok: ["calculate","all","the","metrics",".","It","is","called","at","the","end","of","each","epoch","Args",":","dataobject","(","DataStruct",")",":","It","contains","all","the","information","needed","for","metrics",".","Returns",":","collections.OrderedDict",":","such","as","``","{","'hit","@","20","'",":","0.3824",",","'recall","@","20","'",":","0.0527",",","'hit","@","10","'",":","0.3153",",","'recall","@","10","'",":","0.0329",",","'gauc","'",":","0.9236","}","``"]
code: def evaluate(self, dataobject: DataStruct):
      """calculate all the metrics. It is called at the end of each epoch
  
      Args:
          dataobject (DataStruct): It contains all the information needed for metrics.
  
      Returns:
          collections.OrderedDict: such as ``{'hit@20': 0.3824, 'recall@20': 0.0527, 'hit@10': 0.3153, 'recall@10': 0.0329, 'gauc': 0.9236}``
  
      """
      result_dict = OrderedDict()
      for metric in self.metrics:
          metric_val = self.metric_class[metric].calculate_metric(
              dataobject
          )
          result_dict.update(metric_val)
      return result_dict
  
imports: from recbole.evaluator.register import metrics_dict
  from recbole.evaluator.collector import DataStruct
  from collections import OrderedDict
label_desc: Use image node_id 2 for calling the Evaluator obj's underlying member method code with example usage: obj.evaluate(dataobject) and returns: result_dict