code: def reshape_lhs_rhs(lhs_data, rhs_data):
      r"""Expand dims so that there will be no broadcasting issues with different
      number of dimensions. For example, given two shapes (N, 3, 1), (E, 5, 3, 4)
      that are valid broadcastable shapes, change them to (N, 1, 3, 1) and
      (E, 5, 3, 4)
  
      Parameters
      ----------
      lhs_data : tensor or None
          The left operand, could be None if it's not required by op.
      rhs_data : tensor or None
          The right operand, could be None if it's not required by op.
      """
      lhs_shape = F.shape(lhs_data)
      rhs_shape = F.shape(rhs_data)
      if len(lhs_shape) != len(rhs_shape):
          max_ndims = max(len(lhs_shape), len(rhs_shape))
          lhs_pad_ndims = max_ndims - len(lhs_shape)
          rhs_pad_ndims = max_ndims - len(rhs_shape)
          new_lhs_shape = (
              (lhs_shape[0],) + (1,) * lhs_pad_ndims + lhs_shape[1:]
          )
          new_rhs_shape = (
              (rhs_shape[0],) + (1,) * rhs_pad_ndims + rhs_shape[1:]
          )
          lhs_data = F.reshape(lhs_data, new_lhs_shape)
          rhs_data = F.reshape(rhs_data, new_rhs_shape)
      return lhs_data, rhs_data
  
file_path: dgl/python/dgl/ops/sddmm.py
imports: import sys
  from itertools import product
  from ..None import backend
  from ..backend import gsddmm, gsddmm_hetero
label_desc: Use image node_id 1 for calling a global function with example usage: reshape_lhs_rhs(lhs_data, rhs_data) and returns: lhs_data,  rhs_data