class_docstr: A layer reshaping its input tensor to another tensor of the same total
  number of elements.
  
  Parameters
  ----------
  incoming : a :class:`Layer` instance or a tuple
      The layer feeding into this layer, or the expected input shape
  
  shape : tuple
      The target shape specification. Each element can be one of:
  
      * ``i``, a positive integer directly giving the size of the dimension
      * ``[i]``, a single-element list of int, denoting to use the size
        of the ``i`` th input dimension
      * ``-1``, denoting to infer the size for this dimension to match
        the total number of elements in the input tensor (cannot be used
        more than once in a specification)
      * TensorVariable directly giving the size of the dimension
  
  Examples
  --------
  >>> from lasagne.layers import InputLayer, ReshapeLayer
  >>> l_in = InputLayer((32, 100, 20))
  >>> l1 = ReshapeLayer(l_in, ((32, 50, 40)))
  >>> l1.output_shape
  (32, 50, 40)
  >>> l_in = InputLayer((None, 100, 20))
  >>> l1 = ReshapeLayer(l_in, ([0], [1], 5, -1))
  >>> l1.output_shape
  (None, 100, 5, 4)
  
  Notes
  -----
  The tensor elements will be fetched and placed in C-like order. That
  is, reshaping `[1,2,3,4,5,6]` to shape `(2,3)` will result in a matrix
  `[[1,2,3],[4,5,6]]`, not in `[[1,3,5],[2,4,6]]` (Fortran-like order),
  regardless of the memory layout of the input tensor. For C-contiguous
  input, reshaping is cheap, for others it may require copying the data.
code: def get_output_for(self, input, **kwargs):
      # Replace all `[i]` with the corresponding input dimension
      output_shape = list(self.shape)
      for dim, o in enumerate(output_shape):
          if isinstance(o, list):
              output_shape[dim] = input.shape[o[0]]
      # Everything else is handled by Theano
      return input.reshape(tuple(output_shape))
  
imports: import numpy
  import theano.tensor
  from ..theano_extensions import padding
  from ..utils import int_types
  from .base import Layer
label_desc: Use image node_id 3 for calling the ReshapeLayer obj's underlying member method code with example usage: obj.get_output_for(input) and returns: input