code: def cumprod(data, axis=None, dtype=None, exclusive=None):
      """Numpy style cumprod op. Return the cumulative inclusive product of the elements along
      a given axis.
  
      Parameters
      ----------
      data : relay.Expr
          The input data to the operator.
  
      axis : int, optional
          Axis along which the cumulative product is computed. The default (None) is to compute
          the cumprod over the flattened array.
  
      dtype : string, optional
          Type of the returned array and of the accumulator in which the elements are multiplied.
          If dtype is not specified, it defaults to the dtype of data.
  
      exclusive : bool, optional
          If true will return exclusive product in which the first element is not
          included. In other terms, if true, the j-th output element would be
          the product of the first (j-1) elements. Otherwise, it would be the product of
          the first j elements. The product of zero elements will be 1.
  
      Returns
      -------
      result : relay.Expr
          The result has the same size as data, and the same shape as data if axis is not None.
          If axis is None, the result is a 1-d array.
  
      Examples
      --------
      .. code-block:: python
  
          a = [[1, 2, 3], [4, 5, 6]]
  
          cumprod(a)  # if axis is not provided, cumprod is done over the flattened input.
          -> [ 1,  2,  6, 24, 120, 720]
  
          cumprod(a, dtype="float32")
          -> [  1.,  2.,  6., 24., 120., 720.]
  
          cumprod(a, axis=0)  # multiply over rows for each of the 3 columns
          -> [[1, 2, 3],
              [4, 10, 18]]
  
          cumprod(a, axis=1)
          -> [[ 1,  2,  6],
              [ 4,  20, 120]]
  
          a = [1, 1, 1, 0, 1, 1, 0]  # a is a boolean array
          cumprod(a, dtype=int32)  # dtype should be provided to get the expected results
          -> [1, 1, 1, 0, 0, 0, 0]
      """
      return _make.cumprod(data, axis, dtype, exclusive)
  
imports: from ...tir import expr
  from ..expr import Constant, Expr, Tuple, TupleWrapper, const
  from .None import _make
  from .dyn import _make
  from .tensor import shape_of
label_desc: Use image node_id 45 for calling a global function with example usage: cumprod(data, axis, dtype, exclusive) and returns: _make