code: def get_variable_with_initializer(
      scope_name, var_name, shape, init=tl.initializers.random_normal()
  ):
      # FIXME: documentation needed
      # if tf.executing_eagerly():
      var_name = scope_name + "/" + var_name
      # if init_args is not None and len(init_args) != 0:
      #     initial_value = init(**init_args)(shape=shape)
      # else:
      #     initial_value = init()(shape=shape)
      # var = tf.Variable(initial_value=initial_value, name=var_name)
      # FIXME: not sure whether this is correct?
      initial_value = init(shape=shape)
      var = tf.Variable(
          initial_value=initial_value, name=var_name
      )  # , **init_args)
  
      # else:
      #     with tf.variable_scope(scope_name, reuse=tf.AUTO_REUSE):
      #         var = tf.get_variable(name=var_name, initializer=tf.zeros(shape), trainable=train)
      return var
  
imports: import numpy
  import tensorflow
  from tensorflow.python.ops.rnn_cell import LSTMStateTuple
  import tensorlayer
  from tensorlayer import logging
  from tensorlayer.decorators import deprecated, deprecated_alias
label_desc: Use image node_id 6 for calling a global function with example usage: get_variable_with_initializer(scope_name, var_name, shape, init) and returns: var