We carried out experiments in TensorFlow.Keras using Python. Seven popular CNN models VGG16 [1]}, Xception [2]}, ResNet18 [3]}, ResNet50 [3]}, MobileNet [5]}, InceptionV3 [6]}, and DenseNet [7]} with pre-trained ImageNet weights are used as baselines and also as backbones for extracting deep descriptors for the MSDL. In order to obtain the best baseline results, SGD and Adam optimizers with learning rates of 0.01 and 0.001 are tried with number of epochs 20 and batch size of 64. Horizontal and vertical flips and rotation range of 40 degrees are applied for data augmentation. For MSDL, features from “global_average_pooling2d” layer are pooled from each model. Regardless of backbone model, the MSDL has two main parameters to set: the size of dictionary (\(D\) ) and the dimension of descriptors (N). In our experiments, we explored \(D:\lbrace 8,16,32,64,128\rbrace \)  and \(N:\lbrace 32,64,128,256,512\rbrace \) , and the best \(\lbrace D,N\rbrace \)  is selected based on cross-validation performance.
<TABLE>