class_docstr: shuffle 4D input from bc01 (batch-size-first) order to c01b
  (batch-size-last) order.
  
  This layer can be used for interoperability between c01b and bc01 layers.
  For example, :class:`MaxPool2DCCLayer` and :class:`Conv2DCCLayer` operate
  in c01b mode when they are created with ``dimshuffle=False``.
  
  Parameters
  ----------
  incoming : a :class:`Layer` instance or tuple
      The layer feeding into this layer, or the expected input shape.
  
  **kwargs
      Any additional keyword arguments are passed to the `Layer` superclass.
code: def get_output_shape_for(self, input_shape):
      return (
          input_shape[1],
          input_shape[2],
          input_shape[3],
          input_shape[0],
      )
  
imports: import warnings
  import numpy
  import theano
  import theano.tensor
  from ..None import init
  from ..None import nonlinearities
  from .base import Layer
  from .conv import conv_output_length, BaseConvLayer
  from .pool import pool_output_length
  from ..utils import as_tuple
  from theano.sandbox.cuda.basic_ops import gpu_contiguous
  from pylearn2.sandbox.cuda_convnet.filter_acts import FilterActs
label_desc: Use image node_id 1 for calling the ShuffleBC01ToC01BLayer obj's underlying member method code with example usage: obj.get_output_shape_for(input_shape) and returns: input_shape,  input_shape,  input_shape,  input_shape