code: def create_vgg16():
      # Input variables denoting the features and label data
      feature_var = C.input_variable(
          (num_channels, image_height, image_width)
      )
      label_var = C.input_variable((num_classes))
  
      # apply model to input
      # remove mean value
      input = minus(
          feature_var,
          constant([[[104]], [[117]], [[124]]]),
          name="mean_removed_input",
      )
  
      with default_options(activation=None, pad=True, bias=True):
          z = Sequential(
              [
                  # we separate Convolution and ReLU to name the output for feature extraction (usually before ReLU)
                  For(
                      range(2),
                      lambda i: [
                          Convolution2D(
                              (3, 3), 64, name="conv1_{}".format(i)
                          ),
                          Activation(
                              activation=relu, name="relu1_{}".format(i)
                          ),
                      ],
                  ),
                  MaxPooling((2, 2), (2, 2), name="pool1"),
                  For(
                      range(2),
                      lambda i: [
                          Convolution2D(
                              (3, 3), 128, name="conv2_{}".format(i)
                          ),
                          Activation(
                              activation=relu, name="relu2_{}".format(i)
                          ),
                      ],
                  ),
                  MaxPooling((2, 2), (2, 2), name="pool2"),
                  For(
                      range(3),
                      lambda i: [
                          Convolution2D(
                              (3, 3), 256, name="conv3_{}".format(i)
                          ),
                          Activation(
                              activation=relu, name="relu3_{}".format(i)
                          ),
                      ],
                  ),
                  MaxPooling((2, 2), (2, 2), name="pool3"),
                  For(
                      range(3),
                      lambda i: [
                          Convolution2D(
                              (3, 3), 512, name="conv4_{}".format(i)
                          ),
                          Activation(
                              activation=relu, name="relu4_{}".format(i)
                          ),
                      ],
                  ),
                  MaxPooling((2, 2), (2, 2), name="pool4"),
                  For(
                      range(3),
                      lambda i: [
                          Convolution2D(
                              (3, 3), 512, name="conv5_{}".format(i)
                          ),
                          Activation(
                              activation=relu, name="relu5_{}".format(i)
                          ),
                      ],
                  ),
                  MaxPooling((2, 2), (2, 2), name="pool5"),
                  Dense(4096, name="fc6"),
                  Activation(activation=relu, name="relu6"),
                  Dropout(0.5, name="drop6"),
                  Dense(4096, name="fc7"),
                  Activation(activation=relu, name="relu7"),
                  Dropout(0.5, name="drop7"),
                  Dense(num_classes, name="fc8"),
              ]
          )(input)
  
      # loss and metric
      ce = C.cross_entropy_with_softmax(z, label_var)
      pe = C.classification_error(z, label_var)
      pe5 = C.classification_error(z, label_var, topN=5)
  
      log_number_of_parameters(z)
      print()
  
      return {
          "feature": feature_var,
          "label": label_var,
          "ce": ce,
          "pe": pe,
          "pe5": pe5,
          "output": z,
      }
  
file_path: CNTK/Examples/Image/Classification/VGG/Python/VGG16_ImageNet_Distributed.py
imports: from __future__ import print_function
  import os
  import math
  import argparse
  import numpy
  import _cntk_py
  import cntk.io.transforms
  import cntk
  from cntk.logging import *
  from cntk.ops import placeholder, minus, constant, relu
  from cntk.train.distributed import data_parallel_distributed_learner, Communicator
  from cntk.io import ImageDeserializer, MinibatchSource, StreamDef, StreamDefs, FULL_DATA_SWEEP
  from cntk.layers import Convolution2D, Activation, MaxPooling, Dense, Dropout, default_options, Sequential, For
  from cntk.initializer import normal
  from cntk.train.training_session import *
label_desc: Use image node_id 2 for calling a global function with example usage: create_vgg16() and returns: dict