code: def normalize_sparse_adj(mx):
      """Row-normalize sparse matrix: symmetric normalized Laplacian"""
      rowsum = np.array(mx.sum(1))
      r_inv_sqrt = np.power(rowsum, -0.5).flatten()
      r_inv_sqrt[np.isinf(r_inv_sqrt)] = 0.0
      r_mat_inv_sqrt = sparse.diags(r_inv_sqrt)
  
      return mx.dot(r_mat_inv_sqrt).transpose().dot(r_mat_inv_sqrt)
  
imports: import argparse
  import os
  import time
  import dgl
  import dgl.function
  import networkx
  import numpy
  import torch
  import torch.backends.cudnn
  import torch.nn
  import torch.nn.functional
  from dgl import DGLGraph
  from dgl.data import load_data, register_data_args
  from scipy import sparse
  from ...modules.graph_construction import NodeEmbeddingBasedGraphConstruction, NodeEmbeddingBasedRefinedGraphConstruction
  from ...modules.utils.vocab_utils import VocabModel
  from ..utils import EarlyStopping
label_desc: Use image node_id 5 for calling a global function with example usage: normalize_sparse_adj(mx) and returns: mx