code: def test_shufflenet():
      net = ShuffleNetSpace()
      profiler = FlopsParamsProfiler(
          net,
          torch.randn(1, 3, 224, 224),
          count_bias=False,
          count_normalization=False,
          count_activation=False,
      )
  
      arch = {
          "layer_1": "k7",
          "layer_2": "k5",
          "layer_3": "k3",
          "layer_4": "k5",
          "layer_5": "k7",
          "layer_6": "k3",
          "layer_7": "k7",
          "layer_8": "k3",
          "layer_9": "k7",
          "layer_10": "k3",
          "layer_11": "k7",
          "layer_12": "xcep",
          "layer_13": "k3",
          "layer_14": "k3",
          "layer_15": "k3",
          "layer_16": "k3",
          "layer_17": "xcep",
          "layer_18": "k7",
          "layer_19": "xcep",
          "layer_20": "xcep",
      }
  
      assert 310e6 < profiler.profile(arch).flops < 330e6
      assert 3.4e6 < profiler.profile(arch).params < 3.6e6
      result = profiler.profile(arch)
  
      flops, params, _ = count_flops_params(
          net.freeze(arch), torch.randn(1, 3, 224, 224)
      )
      assert result.flops == flops
      assert result.params == params
  
file_path: nni/test/algo/nas/profiler/test_flops.py
imports: import torch
  from nni.compression.utils.counter import count_flops_params
  from nni.nas.hub.pytorch import ProxylessNAS, MobileNetV3Space, AutoFormer, ShuffleNetSpace
  from nni.nas.profiler.pytorch.flops import FlopsParamsProfiler
label_desc: Use image node_id 4 for calling a global function with example usage: test_shufflenet() without return types