code: def test_grad_custimized_root():
      x = C.input_variable(shape=(1,), needs_gradient=True)
      y = C.sqrt(x)
      y2 = C.log(x)
      combine = C.combine([y.output, y2.output])
      a = np.asarray([1, 4, 16], dtype=np.float32).reshape(3, 1)
      grads = combine.grad({x: a}, grad_root=y.output)
      expect_grad = np.asarray(
          [[0.5], [0.25], [0.125]], dtype=np.float32
      )
      assert np.array_equal(grads, expect_grad)
  
file_path: CNTK/bindings/python/cntk/ops/tests/evaluation_test.py
imports: from __future__ import division
  import numpy
  import pytest
  from .ops_test_utils import _test_binary_op, AA, precision, PRECISION_TO_TYPE, unittest_helper
  from cntk import dropout, combine
  import cntk
label_desc: Use image node_id 4 for calling a global function with example usage: test_grad_custimized_root() without return types