docstr: Apply the normalizer and aggregator to the scores.
  
  Parameters
  ----------
  x
      `Torch.Tensor` of scores from ensemble of detectors.
  
  Returns
  -------
  `Torch.Tensor` of aggregated and normalized scores.
docstr_tok: ["Apply","the","normalizer","and","aggregator","to","the","scores",".","Parameters","--","--","--","--","--","x","`","Torch.Tensor","`","of","scores","from","ensemble","of","detectors",".","Returns","--","--","--","-","`","Torch.Tensor","`","of","aggregated","and","normalized","scores","."]
code: def transform(self, x: torch.Tensor) -> torch.Tensor:
      """Apply the normalizer and aggregator to the scores.
  
      Parameters
      ----------
      x
          `Torch.Tensor` of scores from ensemble of detectors.
  
      Returns
      -------
      `Torch.Tensor` of aggregated and normalized scores.
      """
      if self.normalizer is not None:
          x = self.normalizer(x)
      x = self.aggregator(x)
      return x
  
imports: from abc import ABC, abstractmethod
  from typing import Optional
  from typing_extensions import Self
  import torch
  import numpy
  from torch.nn import Module
  from alibi_detect.exceptions import NotFittedError
label_desc: Use image node_id 2 for calling the Ensembler obj's underlying member method code with example usage: obj.transform(x) and returns: x