these features are widely known as bottleneck features due to the fact that there is an overall decrease in the volume of the input data points it would be worth exploring the model summary to understand how the vgg model transforms the data the output of this stage (the bottleneck featuresis used as input to the classifier we are going to build next the following snippet builds simple fully connected two-layer classifier in [ ]clf_model sequential(clf_model add(flatten(input_shape=bottleneck_features_train shape[ :])clf_model add(dense( activation='relu')clf_model add(dropout( )clf_model add(dense( activation='relu')clf_model add(dropout( )clf_model add(dense(num_classesactivation='softmax')clf_model compile(loss=keras losses categorical_crossentropyoptimizer=keras optimizers adadelta()metrics=['accuracy']the model' input layer matches the dimensions of the bottleneck features (for obvious reasonsas with the cnn model we built from scratchthis model also has dense output layer with softmax activation function training this model as opposed to complete vgg is fairly simple and fastas depicted in the following snippet in [ ]clf_model fit(bottleneck_features_trainy_trainbatch_size=batch_sizeepochs=epochsverbose= epoch / / [============================== loss acc epoch / / [============================== loss acc epoch / / [============================== loss acc epoch / / [============================== loss acc epoch / / [============================== loss acc epoch / / [============================== loss acc we can add hooks to stop the training early based of early stop criteriaetc but for nowwe keep things simple complete code for this section is available in the notebook notebook_pretrained_cnn_cifar classifier ipynb overallwe achieve an accuracy of on the training dataset and around on the test dataset now you'll see the performance of this classifier built on top pre-trained model on the test dataset the following snippet showcases utility function that takes the index number of an image in the test dataset as input and compares the actual labels and the predicted labels def predict_label(img_idx,show_proba=true)plt imshow(x_test[img_idx],aspect='auto'plt title("image to be labeled"plt show(