def METHOD_NAME(batch_size, image_shape, num_classes, dtype, num_layers=11, batch_norm=False):
    """
    Parameters
    ----------
    batch_size : int
        The batch size used in the model
    image_shape : tuple, optional
        The input image shape
    num_classes : int, optional
        Number of claseses
    dtype : str, optional
        The data type
    num_layers : int
        Number of layers for the variant of vgg. Options are 11, 13, 16, 19.
    batch_norm : bool, default False
        Use batch normalization.
    """
    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(f"Invalid num_layers {num_layers}. Choices are 11,13,16,19.")
    layers, filters = vgg_spec[num_layers]
    data_shape = (batch_size,) + image_shape
    data = relay.var("data", shape=data_shape, dtype=dtype)
    feature = get_feature(data, layers, filters, batch_norm)
    classifier = get_classifier(feature, num_classes)
    symbol = relay.nn.softmax(data=classifier)
    args = relay.analysis.free_vars(symbol)
    return relay.Function(args, symbol)