code: def channel_shuffle(l, group):
      in_shape = l.get_shape().as_list()
      in_channel = in_shape[1]
      assert in_channel % group == 0, in_channel
      l = tf.reshape(
          l, [-1, in_channel // group, group] + in_shape[-2:]
      )
      l = tf.transpose(l, [0, 2, 1, 3, 4])
      l = tf.reshape(l, [-1, in_channel] + in_shape[-2:])
      return l
  
imports: import argparse
  import math
  import numpy
  import os
  import cv2
  from tensorpack import tfv1
  from tensorpack import *
  from tensorpack.dataflow import imgaug
  from tensorpack.tfutils import argscope, SmartInit, model_utils
  from tensorpack.tfutils.scope_utils import under_name_scope
  from tensorpack.utils import logger
  from tensorpack.utils.gpu import get_num_gpu
  from imagenet_utils import ImageNetModel, eval_classification, get_imagenet_dataflow
label_desc: Use image node_id 2 for calling a global function with example usage: channel_shuffle(l, group) and returns: l