code: def multiFunc(self, arg1):
      multiIn = C.input(
          shape=arg1.shape, dynamic_axes=arg1.dynamic_axes
      )
      bit_map = C.constant(self.bit_map)
      max_bits = self.bit_map.max()
      shape = multiIn.shape
      reformed = C.reshape(multiIn, (-1,))
      carry_over = multiIn
      approx = C.element_times(multiIn, 0)
      for i in range(max_bits):
          hot_vals = C.greater(bit_map, i)
          valid_vals = C.element_select(hot_vals, carry_over, 0)
          mean = C.element_divide(
              C.reduce_sum(C.abs(valid_vals)), C.reduce_sum(hot_vals)
          )
          bits = C.greater(carry_over, 0)
          bits = C.element_select(bits, bits, -1)
          bits = C.element_select(hot_vals, bits, 0)
          approx = C.plus(approx, C.element_times(mean, bits))
          carry_over = C.plus(
              C.element_times(C.element_times(-1, bits), mean),
              carry_over,
          )
  
      return approx, multiIn
  
imports: from cntk import *
  from cntk.ops.functions import UserFunction
  import numpy
  import cntk
label_desc: Use image node_id 2 for calling the Multibit obj's underlying member method code with example usage: obj.multiFunc(arg1) and returns: approx,  multiIn