docs: def sg_context(**kwargs):
      r"""Context helper for computational graph building.
      Makes all elements within the with Block share the parameters.
  
      For example, in the following example, the default value of parameter `bn` will be set to True
      in the all layers within the with block.
  
      ```
      with tf.sg_context(bn=True):
          ...
          ...
      ```
  
      Args:
        **kwargs:
          in_dim: An integer. The size of input dimension, which is set to the last one by default.
          dim: An integer. The size of output dimension. Has the same value as in_dim by default.
          bn: Boolean. If True, batch normalization is applied.
          ln: Boolean. If True, layer normalization is applied.
          dout: A float of range [0, 100). A dropout rate. Default is 0..
          bias: Boolean. If True (Default), biases are added.
          name: A name for the layer. By default, the function name is assigned.
          act: A name of activation function. e.g., `sigmoid`, `tanh`, etc.
          reuse: `True` or `None`; if `True`, we go into reuse mode for this `layer` scope
            as well as all sub-scopes; if `None`, we just inherit the parent scope reuse.
  
      Returns:
        None
      """
      global _context
  
      # set options when enter
      context_now = tf.sg_opt(kwargs)
      _context += [context_now]
  
      # if named context
      if context_now.name:
          context_now.scope_name = context_now.name
          context_now.name = None
          with tf.variable_scope(context_now.scope_name):
              yield
      else:
          yield
  
      # clear options when exit
      del _context[-1]