code: def InceptionFactoryB(
      data, num_3x3red, num_3x3, num_d3x3red, num_d3x3, 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),
          stride=(2, 2),
          name=("%s_3x3" % name),
      )
      # double 3x3 reduce + double 3x3
      cd3x3r = ConvFactory(
          data=data,
          num_filter=num_d3x3red,
          kernel=(1, 1),
          name=("%s_double_3x3" % name),
          suffix="_reduce",
      )
      cd3x3 = ConvFactory(
          data=cd3x3r,
          num_filter=num_d3x3,
          kernel=(3, 3),
          pad=(1, 1),
          stride=(1, 1),
          name=("%s_double_3x3_0" % name),
      )
      cd3x3 = ConvFactory(
          data=cd3x3,
          num_filter=num_d3x3,
          kernel=(3, 3),
          pad=(1, 1),
          stride=(2, 2),
          name=("%s_double_3x3_1" % name),
      )
      # pool + proj
      pooling = mx.symbol.Pooling(
          data=data,
          kernel=(3, 3),
          stride=(2, 2),
          pad=(1, 1),
          pool_type="max",
          name=("max_pool_%s_pool" % name),
      )
      # concat
      concat = mx.symbol.Concat(
          *[c3x3, cd3x3, pooling], name="ch_concat_%s_chconcat" % name
      )
      return concat
  
imports: import mxnet
label_desc: Use image node_id 3 for calling a global function with example usage: InceptionFactoryB(data, num_3x3red, num_3x3, num_d3x3red, num_d3x3, name) and returns: concat