code: def test_zero_prop2():
      x = mx.sym.Variable("x")
      idx = mx.sym.Variable("idx")
      y = mx.sym.batch_take(x, idx)
      z = mx.sym.stop_gradient(y)
      exe = z._simple_bind(
          ctx=mx.cpu(),
          x=(10, 10),
          idx=(10,),
          type_dict={"x": np.float32, "idx": np.int32},
      )
      exe.forward(is_train=True)
      exe.backward()
      mx.nd.waitall()
  
imports: import copy
  import sys
  import os
  import logging
  import re
  import json
  import mxnet
  import numpy
  from common import assertRaises, models, TemporaryDirectory
  from mxnet.base import NotImplementedForSymbol
  from mxnet.test_utils import discard_stderr, rand_shape_nd, use_np, environment
  from mxnet.util import np_shape
  import pickle
label_desc: Use image node_id 15 for calling a global function with example usage: test_zero_prop2() without return types