code: def gradFunc(self, arg):
      # create an input variable corresponding the inputs of the forward prop function
      gradIn = C.input(shape=arg.shape, dynamic_axes=arg.dynamic_axes)
      # create an input variable for the gradient passed from the next stage
      gradRoot = C.input(shape=arg.shape, dynamic_axes=arg.dynamic_axes)
      # gradOut =  C.input(shape=arg.shape, dynamic_axes=arg.dynamic_axes)
  
      signGrad = C.abs(gradIn)
      # new idea, bound of clipping should be a function of the bit map since higher bits can represent higher numbers
      bit_map = C.constant(self.bit_map)
      signGrad = C.less_equal(signGrad, bit_map)
      outGrad = signGrad
  
      outGrad = element_times(gradRoot, outGrad)
  
      return outGrad, gradIn, gradRoot
  
imports: from cntk import *
  from cntk.ops.functions import UserFunction
  import numpy
  import cntk
label_desc: Use image node_id 3 for calling the Multibit obj's underlying member method code with example usage: obj.gradFunc(arg) and returns: outGrad,  gradIn,  gradRoot