code: def adj_mat(self, option: str = "hierarchical"):
      assert option in [
          "standard_plus_identity",  # A + I
          "normalized_with_identity",  # D^{-1} (A + I), where D is the diagonal matrix of (A + I)
          "symmetric_normalized_with_identity",  # D^{-1/2} (A + I) D^{-1/2}, D is the diagonal matrix of (A + I)
          "standard",  # A
          "normalized",  # D^{-1} A, where D is the diagonal matrix of A
          "symmetric_normalized",  # D^{-1/2} A D^{-1/2}, D is the diagonal matrix of A
          "hierarchical",
      ]
      if option == "standard":
          return self._adj_mat
      if option == "standard_plus_identity":
          A = self._adj_mat
          return A + np.eye(A.shape[0])
      if option == "normalized":
          A = self._adj_mat
          D = np.diag(A.sum(axis=1))
          D_inv = np.linalg.inv(D)
          A_normalized = np.matmul(D_inv, A)
          return A_normalized
      if option == "normalized_with_identity":
          A = self._adj_mat
          A_hat = A + np.eye(A.shape[0])
          D = np.diag(A_hat.sum(axis=1))
          D_inv = np.linalg.inv(D)
          A_normalized_with_identity = np.matmul(D_inv, A_hat)
          return A_normalized_with_identity
      if option == "symmetric_normalized":
          A = self._adj_mat
          sqrt_D = np.diag(np.sqrt(A.sum(axis=1)))
          D_inv_sqrt = np.linalg.inv(sqrt_D)
          A_symmetric_normalized = np.matmul(
              D_inv_sqrt, np.matmul(A, D_inv_sqrt)
          )
          return A_symmetric_normalized
      if option == "symmetric_normalized_with_identity":
          A = self._adj_mat
          A_hat = A + np.eye(A.shape[0])
          sqrt_D = np.diag(np.sqrt(A_hat.sum(axis=1)))
          D_inv_sqrt = np.linalg.inv(sqrt_D)
          A_symmetric_normalized_with_identity = np.matmul(
              D_inv_sqrt, np.matmul(A_hat, D_inv_sqrt)
          )
          return A_symmetric_normalized_with_identity
      if option == "hierarchical":
          return self._hierarchical_adj_mat
  
imports: from typing import Iterator, List
  import numpy
  import pandas
  from gluonts.core.component import validated
  from gluonts.model.forecast import SampleForecast
  from gluonts.mx import Tensor
label_desc: Use image node_id 4 for calling the TemporalHierarchy obj's underlying member method code with example usage: obj.adj_mat(option) and returns: self, unknown, A_normalized, A_normalized_with_identity, A_symmetric_normalized, A_symmetric_normalized_with_identity, self