code: def _get_broadcast_shape(shape1, shape2):
      
      if shape1 == shape2:
          return shape1
  
      length1 = len(shape1)
      length2 = len(shape2)
      if length1 > length2:
          shape = list(shape1)
      else:
          shape = list(shape2)
      i = max(length1, length2) - 1
      for a, b in zip(shape1[::-1], shape2[::-1]):
          if a != 1 and b != 1 and a != b:
              raise ValueError('shape1=%s is not broadcastable to shape2=%s' % (shape1, shape2))
          shape[i] = max(a, b)
          i -= 1
      return tuple(shape)
docs: Given two shapes that are not identical, find the shape
      that both input shapes can broadcast to.