code: def learn_embedding(self):
      graph = self.g.G
      A = nx.to_numpy_matrix(graph)
  
      # self._beta = 0.0728
  
      # M_g = np.eye(graph.number_of_nodes()) - self._beta * A
      # M_l = self._beta * A
  
      M_g = np.eye(graph.number_of_nodes())
      M_l = np.dot(A, A)
  
      S = np.dot(np.linalg.inv(M_g), M_l)
      # s: \sigma_k
      u, s, vt = lg.svds(S, k=self._d // 2)
      sigma = np.diagflat(np.sqrt(s))
      X1 = np.dot(u, sigma)
      X2 = np.dot(vt.T, sigma)
      # self._X = X2
      self._X = np.concatenate((X1, X2), axis=1)
  
file_path: OpenNE/src/openne/hope.py
imports: import networkx
  import numpy
  import scipy.io
  import scipy.sparse
  import scipy.sparse.linalg
  from .None import graph
  import tensorflow
  from sklearn.preprocessing import normalize
label_desc: Use image node_id 2 for calling the HOPE obj's underlying member method code with example usage: obj.learn_embedding() without return types