code: def backward(self, state, root_gradients, variables):
      if self.inputs[0] in variables:
          variables[self.inputs[0]] = [
              r0 + 2 * r1
              for r0, r1 in zip(
                  root_gradients[self.outputs[0]],
                  root_gradients[self.outputs[1]],
              )
          ]
  
      if self.inputs[1] in variables:
          variables[self.inputs[1]] = [
              2 * r0 + r1
              for r0, r1 in zip(
                  root_gradients[self.outputs[0]],
                  root_gradients[self.outputs[1]],
              )
          ]
  
imports: import numpy
  import pytest
  import cntk
  from cntk.ops.functions import Function, UserFunction
  from .ops_test_utils import AA
label_desc: Use image node_id 4 for calling the MultiFreeDimensionOutputUserFunction obj's underlying member method code with example usage: obj.backward(state, root_gradients, variables) without return types