code: def create_network(stage_depth):
      # Structure of the deep residual part of the network:
      # stage_depth modules of 2 convolutional layers each at feature map depths of 16, 32, 64
      nfms = [
          2 ** (stage + 4)
          for stage in sorted(list(range(3)) * stage_depth)
      ]
      strides = [
          1 if cur == prev else 2
          for cur, prev in zip(nfms[1:], nfms[:-1])
      ]
  
      # Now construct the network
      layers = [Conv(**conv_params(3, 16))]
      layers.append(module_s1(nfms[0], True))
  
      for nfm, stride in zip(nfms[1:], strides):
          res_module = module_s1(nfm) if stride == 1 else module_s2(nfm)
          layers.append(res_module)
      layers.append(BatchNorm())
      layers.append(Activation(Rectlin()))
      layers.append(Pooling("all", op="avg"))
      layers.append(
          Affine(
              10,
              init=Kaiming(local=False),
              batch_norm=True,
              activation=Softmax(),
          )
      )
  
      return Model(layers=layers), GeneralizedCost(
          costfunc=CrossEntropyMulti()
      )
  
file_path: neon/examples/cifar10_msra/network.py
imports: from neon.initializers import Kaiming
  from neon.layers import Conv, Pooling, GeneralizedCost, Activation, Affine
  from neon.layers import MergeSum, SkipNode, BatchNorm
  from neon.models import Model
  from neon.transforms import Rectlin, Softmax, CrossEntropyMulti
label_desc: Use image node_id 4 for calling a global function with example usage: create_network(stage_depth) and returns: Model,  GeneralizedCost