class_docstr: Computes the hyperbolic inner product between elements of a rank 2 Tensor:
  $$
      \langle \x, \x \rangle = \x \,
      \begin{pmatrix}
          \I_{d \times d} & 0 \\
          0              & -1
      \end{pmatrix} \, \x^\top.
  $$
  
  **Mode**: single.
  
  **Input**
  
  - Tensor of shape `(n_nodes, n_features)`;
  
  **Output**
  
  - Tensor of shape `(n_nodes, n_nodes)`.
  
  :param activation: activation function;
code: def get_config(self):
      config = {"activation": self.activation}
      base_config = super().get_config()
      return dict(list(base_config.items()) + list(config.items()))
  
imports: import numpy
  import tensorflow
  from tensorflow.keras import activations
  from tensorflow.keras import backend
  from tensorflow.keras import constraints, initializers, regularizers
  from tensorflow.keras.layers import Layer
  from tensorflow.python.framework import smart_cond
  from spektral.layers import ops
label_desc: Use image node_id 4 for calling the MinkowskiProduct obj's underlying member method code with example usage: obj.get_config() and returns: dict