code: def get_net_str(net_configs):
      if isinstance(net_configs, list):
          if len(net_configs) == 1:
              net_config = net_configs[0]
              net_str = []
              for layer in net_config.layer_cascade.layers[:-1]:
                  if isinstance(layer, ConvLayer):
                      net_str.append(
                          "conv-%d-%d"
                          % (layer.filter_num, layer.kernel_size)
                      )
                  elif isinstance(layer, FCLayer):
                      net_str.append("fc-%d" % layer.units)
                  else:
                      net_str.append("pool")
              return ["_".join(net_str)]
          else:
              net_str_list = []
              for net_config in net_configs:
                  net_str_list += get_net_str([net_config])
              return net_str_list
      else:
          return get_net_str([net_configs])[0]
  
file_path: auptimizer/src/aup/Proposer/eas/arch_search/arch_search_convnet_net2net.py
imports: from ..expdir_monitor.arch_manager import ArchManager
  from ..meta_controller.base_controller import Vocabulary, EncoderNet, WiderActorNet, DeeperActorNet
  from ..meta_controller.rl_controller import ReinforceNet2NetController
  from time import gmtime, strftime, time
  from datetime import timedelta
  from ..models.layers import ConvLayer, FCLayer, PoolLayer
  import re
  import numpy
label_desc: Use image node_id 1 for calling a global function with example usage: get_net_str(net_configs) and returns: get_net_str, list, net_str_list