code: def inception_v3_model(input, labelDim, dropRate, bnTimeConst):
      # 299 x 299 x 3
      conv1 = conv_bn_relu_layer(
          input, 32, (3, 3), (2, 2), False, bnTimeConst
      )
      # 149 x 149 x 32
      conv2 = conv_bn_relu_layer(
          conv1, 32, (3, 3), (1, 1), False, bnTimeConst
      )
      # 147 x 147 x 32
      conv3 = conv_bn_relu_layer(
          conv2, 64, (3, 3), (1, 1), True, bnTimeConst
      )
      # 147 x 147 x 64
      pool1 = MaxPooling(
          filter_shape=(3, 3), strides=(2, 2), pad=False
      )(conv3)
      # 73 x 73 x 64
      conv4 = conv_bn_relu_layer(
          pool1, 80, (1, 1), (1, 1), False, bnTimeConst
      )
      # 73 x 73 x 80
      conv5 = conv_bn_relu_layer(
          conv4, 192, (3, 3), (1, 1), False, bnTimeConst
      )
      # 71 x 71 x 192
      pool2 = MaxPooling(
          filter_shape=(3, 3), strides=(2, 2), pad=False
      )(conv5)
      # 35 x 35 x 192
  
      #
      # Inception Blocks
      #
      mixed1 = inception_block_1(
          pool2, 64, [48, 64], [64, 96, 96], 32, bnTimeConst
      )
      # 35 x 35 x 256
      mixed2 = inception_block_1(
          mixed1, 64, [48, 64], [64, 96, 96], 64, bnTimeConst
      )
      # 35 x 35 x 288
      mixed3 = inception_block_1(
          mixed2, 64, [48, 64], [64, 96, 96], 64, bnTimeConst
      )
      # 35 x 35 x 288
      mixed4 = inception_block_2(mixed3, 384, [64, 96, 96], bnTimeConst)
      # 17 x 17 x 768
      mixed5 = inception_block_3(
          mixed4,
          192,
          [128, 128, 192],
          [128, 128, 128, 128, 192],
          192,
          bnTimeConst,
      )
      # 17 x 17 x 768
      mixed6 = inception_block_3(
          mixed5,
          192,
          [160, 160, 192],
          [160, 160, 160, 160, 192],
          192,
          bnTimeConst,
      )
      # 17 x 17 x 768
      mixed7 = inception_block_3(
          mixed6,
          192,
          [160, 160, 192],
          [160, 160, 160, 160, 192],
          192,
          bnTimeConst,
      )
      # 17 x 17 x 768
      mixed8 = inception_block_3(
          mixed7,
          192,
          [192, 192, 192],
          [192, 192, 192, 192, 192],
          192,
          bnTimeConst,
      )
      # 17 x 17 x 768
      mixed9 = inception_block_4(
          mixed8, [192, 320], [192, 192, 192, 192], bnTimeConst
      )
      # 8 x 8 x 1280
      mixed10 = inception_block_5(
          mixed9,
          320,
          [384, 384, 384],
          [448, 384, 384, 384],
          192,
          bnTimeConst,
      )
      # 8 x 8 x 2048
      mixed11 = inception_block_5(
          mixed10,
          320,
          [384, 384, 384],
          [448, 384, 384, 384],
          192,
          bnTimeConst,
      )
      # 8 x 8 x 2048
  
      #
      # Prediction
      #
      pool3 = AveragePooling(filter_shape=(8, 8), pad=False)(mixed11)
      # 1 x 1 x 2048
      drop = Dropout(dropout_rate=dropRate)(pool3)
      # 1 x 1 x 2048
      z = Dense(labelDim, init=he_normal())(drop)
  
      #
      # Auxiliary
      #
      # 17 x 17 x 768
      auxPool = AveragePooling(
          filter_shape=(5, 5), strides=(3, 3), pad=False
      )(mixed8)
      # 5 x 5 x 768
      auxConv1 = conv_bn_relu_layer(
          auxPool, 128, (1, 1), (1, 1), True, bnTimeConst
      )
      # 5 x 5 x 128
      auxConv2 = conv_bn_relu_layer(
          auxConv1, 768, (5, 5), (1, 1), False, bnTimeConst
      )
      # 1 x 1 x 768
      aux = Dense(labelDim, init=he_normal())(auxConv2)
  
      return {"z": z, "aux": aux}
  
file_path: CNTK/Examples/Image/Classification/GoogLeNet/InceptionV3/Python/InceptionV3.py
imports: from cntk.initializer import he_normal
  from cntk.layers import AveragePooling, MaxPooling, BatchNormalization, Convolution, Dense, Dropout
  from cntk.ops import minus, element_times, relu, splice
label_desc: Use image node_id 8 for calling a global function with example usage: inception_v3_model(input, labelDim, dropRate, bnTimeConst) and returns: dict