class_docstr: Base class for operators implemented in python
class_docstr_tok: ["Base","class","for","operators","implemented","in","python"]
docstr: Forward interface. Can override when creating new operators.
  
  Parameters
  ----------
  is_train : bool
      whether this is for training
  req : list of str
      how to assign to out_data. can be 'null', 'write', or 'add'.
      You can optionally use self.assign(dst, req, src) to handle this.
  in_data, out_data, aux: list of NDArrays
      input, output, and auxiliary states for forward. See document for
      corresponding arguments of Operator::Forward
docstr_tok: ["Forward","interface",".","Can","override","when","creating","new","operators",".","Parameters","--","--","--","--","--","is_train",":","bool","whether","this","is","for","training","req",":","list","of","str","how","to","assign","to","out_data",".","can","be","'null","'",",","'write","'",",","or","'add","'",".","You","can","optionally","use","self.assign","(","dst",",","req",",","src",")","to","handle","this",".","in_data",",","out_data",",","aux",":","list","of","NDArrays","input",",","output",",","and","auxiliary","states","for","forward",".","See","document","for","corresponding","arguments","of","Operator",":",":Forward"]
code: def forward(self, is_train, req, in_data, out_data, aux):
      """Forward interface. Can override when creating new operators.
  
      Parameters
      ----------
      is_train : bool
          whether this is for training
      req : list of str
          how to assign to out_data. can be 'null', 'write', or 'add'.
          You can optionally use self.assign(dst, req, src) to handle this.
      in_data, out_data, aux: list of NDArrays
          input, output, and auxiliary states for forward. See document for
          corresponding arguments of Operator::Forward
      """
      # pylint: disable=W0613
      pass
  
imports: import traceback
  import warnings
  import collections
  from array import array
  from threading import Lock
  import ctypes
  from ctypes import CFUNCTYPE, POINTER, Structure, pointer
  from ctypes import c_void_p, c_int, c_char, c_char_p, cast, c_bool
  from .base import _LIB, check_call, MXCallbackList, c_array, c_array_buf, mx_int, OpHandle
  from .base import c_str, mx_uint, mx_float, ctypes2numpy_shared, NDArrayHandle, py_str
  from .None import symbol, context
  from .ndarray import NDArray, dtype_np_to_mx, dtype_mx_to_np
  from .ndarray.ndarray import _STORAGE_TYPE_STR_TO_ID, _STORAGE_TYPE_ID_TO_STR
  from .ndarray.ndarray import _STORAGE_TYPE_UNDEFINED, _STORAGE_TYPE_DEFAULT
  from .ndarray.ndarray import _STORAGE_TYPE_CSR, _STORAGE_TYPE_ROW_SPARSE
  from .ndarray import _ndarray_cls
  from .numpy.multiarray import _np_ndarray_cls
  from .util import is_np_array
label_desc: Use image node_id 2 for calling the CustomOp obj's underlying member method code with example usage: obj.forward(is_train, req, in_data, out_data, aux) without return types