code: def get_symbol(num_classes, num_layers=11, batch_norm=False, dtype='float32', **kwargs):
      
      vgg_spec = {11: ([1, 1, 2, 2, 2], [64, 128, 256, 512, 512]),
                  13: ([2, 2, 2, 2, 2], [64, 128, 256, 512, 512]),
                  16: ([2, 2, 3, 3, 3], [64, 128, 256, 512, 512]),
                  19: ([2, 2, 4, 4, 4], [64, 128, 256, 512, 512])}
      if num_layers not in vgg_spec:
          raise ValueError("Invalide num_layers {}. Possible choices are 11,13,16,19.".format(num_layers))
      layers, filters = vgg_spec[num_layers]
      data = mx.sym.Variable(name="data")
      if dtype == 'float16':
          data = mx.sym.Cast(data=data, dtype=np.float16)
      feature = get_feature(data, layers, filters, batch_norm)
      classifier = get_classifier(feature, num_classes)
      if dtype == 'float16':
          classifier = mx.sym.Cast(data=classifier, dtype=np.float32)
      symbol = mx.sym.SoftmaxOutput(data=classifier, name='softmax')
      return symbol
docs: Parameters
      ----------
      num_classes : int, default 1000
          Number of classification classes.
      num_layers : int
          Number of layers for the variant of densenet. Options are 11, 13, 16, 19.
      batch_norm : bool, default False
          Use batch normalization.
      dtype: str, float32 or float16
          Data precision.