class_docstr: Linear map: sum_i(args[i] * W[i]), where W[i] is a variable.
  
  Args:
    args: a 2D Tensor or a list of 2D, batch x n, Tensors.
    output_size: int, second dimension of weight variable.
    dtype: data type for variables.
    build_bias: boolean, whether to build a bias variable.
    bias_initializer: starting value to initialize the bias
      (default is all zeros).
    kernel_initializer: starting value to initialize the weight.
  
  Raises:
    ValueError: if inputs_shape is wrong.
class_docstr_tok: ["Linear","map",":","sum_i","(","args","[","i","]","*","W","[","i","]",")",",","where","W","[","i","]","is","a","variable",".","Args",":","args",":","a","2D","Tensor","or","a","list","of","2D",",","batch","x","n",",","Tensors",".","output_size",":","int",",","second","dimension","of","weight","variable",".","dtype",":","data","type","for","variables",".","build_bias",":","boolean",",","whether","to","build","a","bias","variable",".","bias_initializer",":","starting","value","to","initialize","the","bias","(","default","is","all","zeros",")",".","kernel_initializer",":","starting","value","to","initialize","the","weight",".","Raises",":","ValueError",":","if","inputs_shape","is","wrong","."]
code: def __init__(
      self,
      args,
      output_size,
      build_bias,
      bias_initializer=None,
      kernel_initializer=None,
  ):
      self._build_bias = build_bias
  
      if args is None or (nest.is_sequence(args) and not args):
          raise ValueError("`args` must be specified")
      if not nest.is_sequence(args):
          args = [args]
          self._is_sequence = False
      else:
          self._is_sequence = True
  
      # Calculate the total size of arguments on dimension 1.
      total_arg_size = 0
      shapes = [a.get_shape() for a in args]
      for shape in shapes:
          if shape.ndims != 2:
              raise ValueError(
                  "linear is expecting 2D arguments: %s" % shapes
              )
          if shape[1] is None:
              raise ValueError(
                  "linear expects shape[1] to be provided for shape %s, "
                  "but saw %s" % (shape, shape[1])
              )
          else:
              total_arg_size += shape[1]
  
      dtype = [a.dtype for a in args][0]
  
      scope = vs.get_variable_scope()
      with vs.variable_scope(scope) as outer_scope:
          self._weights = vs.get_variable(
              _WEIGHTS_VARIABLE_NAME,
              [total_arg_size, output_size],
              dtype=dtype,
              initializer=kernel_initializer,
          )
          if build_bias:
              with vs.variable_scope(outer_scope) as inner_scope:
                  inner_scope.set_partitioner(None)
                  if bias_initializer is None:
                      bias_initializer = init_ops.constant_initializer(
                          0.0, dtype=dtype
                      )
                  self._biases = vs.get_variable(
                      _BIAS_VARIABLE_NAME,
                      [output_size],
                      dtype=dtype,
                      initializer=bias_initializer,
                  )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import tensorflow
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import clip_ops
  from tensorflow.python.ops import init_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import nn_ops
  from tensorflow.python.ops import partitioned_variables
  from tensorflow.python.ops import variable_scope
  from tensorflow.python.platform import tf_logging
  from tensorflow.python.util import nest
  from tensorflow.python.ops.rnn_cell_impl import RNNCell, LSTMStateTuple, _BIAS_VARIABLE_NAME, _WEIGHTS_VARIABLE_NAME
label_desc: Use image node_id 1 to create a new _Linear object from inherited base classes: object with example: obj = _Linear(args, output_size, build_bias, bias_initializer, kernel_initializer)