code: def InceptionFactory(
      data,
      num_1x1,
      num_3x3red,
      num_3x3,
      num_d5x5red,
      num_d5x5,
      pool,
      proj,
      name,
  ):
      # 1x1
      c1x1 = ConvFactory(
          data=data,
          num_filter=num_1x1,
          kernel=(1, 1),
          name=("%s_1x1" % name),
      )
      # 3x3 reduce + 3x3
      c3x3r = ConvFactory(
          data=data,
          num_filter=num_3x3red,
          kernel=(1, 1),
          name=("%s_3x3" % name),
          suffix="_reduce",
      )
      c3x3 = ConvFactory(
          data=c3x3r,
          num_filter=num_3x3,
          kernel=(3, 3),
          pad=(1, 1),
          name=("%s_3x3" % name),
      )
      # double 3x3 reduce + double 3x3
      cd5x5r = ConvFactory(
          data=data,
          num_filter=num_d5x5red,
          kernel=(1, 1),
          name=("%s_5x5" % name),
          suffix="_reduce",
      )
      cd5x5 = ConvFactory(
          data=cd5x5r,
          num_filter=num_d5x5,
          kernel=(5, 5),
          pad=(2, 2),
          name=("%s_5x5" % name),
      )
      # pool + proj
      pooling = mx.symbol.Pooling(
          data=data,
          kernel=(3, 3),
          stride=(1, 1),
          pad=(1, 1),
          pool_type=pool,
          name=("%s_pool_%s_pool" % (pool, name)),
      )
      cproj = ConvFactory(
          data=pooling,
          num_filter=proj,
          kernel=(1, 1),
          name=("%s_proj" % name),
      )
      # concat
      concat = mx.symbol.Concat(
          *[c1x1, c3x3, cd5x5, cproj],
          name="ch_concat_%s_chconcat" % name,
      )
      return concat
  
imports: import mxnet
label_desc: Use image node_id 2 for calling a global function with example usage: InceptionFactory(data, num_1x1, num_3x3red, num_3x3, num_d5x5red, num_d5x5, pool, proj, name) and returns: concat