code: def on_exp_end(self):
      for agg_key, agg_val in self.stat_aggregates[
          "evaluations"
      ].items():
          agg_val["final"] = self.__loop_helper(agg_key)
  
          #################### Reshape Aggregates to be of Proper Dimensions ####################
          runs_shape = (self._rep + 1, self._fold + 1, self._run + 1)
          agg_val["runs"] = np.reshape(
              agg_val["runs"], runs_shape
          ).tolist()
          agg_val["folds"] = np.reshape(
              agg_val["folds"], runs_shape[:-1]
          ).tolist()
  
      super().on_exp_end()
  
imports: from hyperparameter_hunter.callbacks.bases import BaseAggregatorCallback
  from datetime import datetime
  import numpy
label_desc: Use image node_id 4 for calling the AggregatorEvaluations obj's underlying member method code with example usage: obj.on_exp_end() without return types