class_docstr: Implement the hypervolume scalarization.
  
  Given a vector of (at least two) objectives M, a unit-length vector V with
  non-negative coordinates, a slope vector A, and an offset vector B, all having
  the same dimension, the hypervolume scalarization of M is defined as:
  
  ```min_{i: V_i > 0} max(A_i * M_i + B_i, 0) / V_i.```
  
  See https://arxiv.org/abs/2006.04655 for more details.
  Note that it is recommended for the user to set A_i and B_i in such a way to
  ensure non-negativity of the transformed objectives.
class_docstr_tok: ["Implement","the","hypervolume","scalarization",".","Given","a","vector","of","(","at","least","two",")","objectives","M",",","a","unit-length","vector","V","with","non-negative","coordinates",",","a","slope","vector","A",",","and","an","offset","vector","B",",","all","having","the","same","dimension",",","the","hypervolume","scalarization","of","M","is","defined","as",":","``","`","min_","{","i",":","V_i",">","0","}","max","(","A_i","*","M_i","+","B_i",",","0",")","\/","V_i.","``","`","See","https",":","\/\/arxiv.org\/abs\/2006.04655","for","more","details",".","Note","that","it","is","recommended","for","the","user","to","set","A_i","and","B_i","in","such","a","way","to","ensure","non-negativity","of","the","transformed","objectives","."]
code: def _transform(self, multi_objectives: tf.Tensor) -> tf.Tensor:
      _validate_scalarization_parameter_shape(
          multi_objectives,
          {
              self.DIRECTION_KEY: self._direction,
              self.SLOPE_KEY: self._slopes,
              self.OFFSET_KEY: self._offsets,
          },
      )
      return self._transformer(
          multi_objectives, self._slopes, self._offsets
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import abc
  import copy
  from typing import Callable, Dict, NamedTuple, Optional, Sequence, Union
  import numpy
  import six
  import tensorflow.compat.v2
label_desc: Use image node_id 3 for calling the HyperVolumeScalarizer obj's underlying member method code with example usage: obj._transform(multi_objectives) and returns: self