code: def forward(self, argument, device, outputs_to_retain):
      # perform forward on the action function object. To do this, we have to map argument to the actions input,
      # actionArg, we specify that the outputs should be stored in action.outputs and set as_numpy to false to get
      # things running faster
      _, output_values = self.action.forward(
          {self.actionArg: argument},
          self.action.outputs,
          device=device,
          as_numpy=False,
      )
      # first return argument is what to store in state, in our case, we need to keep the inputs to forward to compute
      # the straight through estimator gradient. Second output is simply selecting the proper output from output_values.
      return argument.deep_clone(), output_values[self.action.output]
  
imports: import numpy
  import cntk
  from cntk.ops.functions import UserFunction
label_desc: Use image node_id 4 for calling the SignWithEstimation obj's underlying member method code with example usage: obj.forward(argument, device, outputs_to_retain) and returns: argument,  output_values