code: def __call__(self, x):
      transposed = transpose(x, self.transpose_axes)
      if self.transposed_shape is not None:
          assert (
              self.transposed_shape == transposed.shape
          ), "Wrong shape input given."
      self.transposed_shape = transposed.shape
      reduced_inner_size = np.prod(
          transposed.shape[len(self.outer_axes) :]
      )
      outer_shape = list(transposed.shape[: len(self.outer_axes)])
      return reshape(transposed, outer_shape + [reduced_inner_size])
  
imports: from __future__ import absolute_import
  from .function_bases import *
  from six.moves import reduce
  import numpy
  import nnabla
label_desc: Use image node_id 2 for calling the BatchNormalizationInOutAdapter obj's underlying member method code with example usage: obj.__call__(x) and returns: reshape