class_docstr: Detect the pattern ``concat-->reshape--->transpose--->reshape``, where ``concat`` is
  along the channel axis ``(axis=-3)``, and map this pattern to the ``concat`` with ``interleave`` op.
  
  This pattern occurs, for example, in the ``shufflenet`` model in ``torchvision``.
  
  .. code-block::
  
      Given:
          %3 = concat(%1.a, %1.b, ..., axis=-3, interleave=False) #shape = (B, n*C, H, W)
          %4 = reshape(%3) #shape = (B, n, C, H, W)
          %5 = transpose(%4, perm=[0, 2, 1, 3, 4]) # shape = (B, C, n, H, W)
          %6 = reshape(%5) # shape = (B, C*n, H, W)
  
      Result:
          %6 = concat(%1.a, %1.b, ..., axis=-3, interleave=True)
class_docstr_tok: ["Detect","the","pattern","``","concat","--",">","reshape","--","-",">","transpose","--","-",">","reshape","``",",","where","``","concat","``","is","along","the","channel","axis","``","(","axis=-3",")","``",",","and","map","this","pattern","to","the","``","concat","``","with","``","interleave","``","op",".","This","pattern","occurs",",","for","example",",","in","the","``","shufflenet","``","model","in","``","torchvision","``",".","..","code-block",":",":","Given",":","%","3","=","concat","(","%","1.a",",","%","1.b",",","...",",","axis=-3",",","interleave=False",")","#","shape","=","(","B",",","n","*","C",",","H",",","W",")","%","4","=","reshape","(","%","3",")","#","shape","=","(","B",",","n",",","C",",","H",",","W",")","%","5","=","transpose","(","%","4",",","perm=","[","0",",","2",",","1",",","3",",","4","]",")","#","shape","=","(","B",",","C",",","n",",","H",",","W",")","%","6","=","reshape","(","%","5",")","#","shape","=","(","B",",","C","*","n",",","H",",","W",")","Result",":","%","6","=","concat","(","%","1.a",",","%","1.b",",","...",",","axis=-3",",","interleave=True",")"]
code: def apply(self, prog):
      for f in prog.functions.values():
          block_changed = True
          while block_changed:
              block_changed = self._fuse_concat_interleave(f)
  
imports: import numpy
  from coremltools.converters.mil._deployment_compatibility import AvailableTarget
  from coremltools.converters.mil.frontend._utils import value_at
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil.block import is_current_opset_version_compatible_with
  from coremltools.converters.mil.mil.passes.graph_pass import AbstractGraphPass
  from coremltools.converters.mil.mil.passes.helper import _check_child_op_type, _check_var_scalar_value, block_context_manager
  from coremltools.converters.mil.mil.passes.pass_registry import register_pass
  from coremltools.converters.mil.mil.types.symbolic import any_symbolic
label_desc: Use image node_id 1 for calling the detect_concat_interleave obj's underlying member method code with example usage: obj.apply(prog) without return types