code: def _print_tree(node, level=0):
      """
      print tree with indentation
      """
  
      if type(node) is list:
          neon_logger.display(
              ("    " * level)
              + ", ".join(native_str(s) for s in node[0:3])
          )
          if len(node) > 3:
              _print_tree(node[3], level + 1)
          if len(node) > 4:
              _print_tree(node[4], level + 1)
      else:
          neon_logger.display(("    " * level) + native_str(node))
  
imports: from __future__ import division
  from future.utils import native_str
  import os.path
  import re
  import traceback
  import numpy
  from pycuda.tools import context_dependent_memoize
  from pytools import memoize
  from neon import logger
  import neon.backends.nervanagpu
  from neon.backends.util.source_module import SourceModule
  from neon.backends.cuda_templates import _ew_template, _stage_template, _fin_template, _init_rand_func, _init_rand_round_func, _finish_rand_func, _common_kepler, _common_urand_gen, _common_frand, _common_round, _common_fp16_to_fp32, _ew_types, _ew_strings, _is_finite, _float_ops, _reduction_ops
  from neon.backends.cuda_batchnorm import _get_bn_fprop_kernel, _get_bn_bprop_kernel
  from neon.backends.kernels.cuda.lookuptable import _get_lut_bprop_kernel, _get_sorting_kernel
label_desc: Use image node_id 2 for calling a global function with example usage: _print_tree(node, level) without return types