code: def reduce_mean(self, X, lengths):
      if X.dtype in ("float32", "float64") and lengths.dtype == "int32":
          return _custom_kernels.reduce_mean(X, lengths=lengths)
      else:
          super().reduce_mean(X, lengths)
  
imports: import numpy
  from ..None import registry
  from ..compat import cupy, cupyx
  from ..types import DeviceTypes
  from ..util import is_cupy_array, is_mxnet_gpu_array, is_tensorflow_gpu_array, is_torch_cuda_array, mxnet2xp, tensorflow2xp, torch2xp
  from .None import _custom_kernels
  from .numpy_ops import NumpyOps
  from .ops import Ops
label_desc: Use image node_id 26 for calling the CupyOps obj's underlying member method code with example usage: obj.reduce_mean(X, lengths) and returns: _custom_kernels