Package: ptmodels
ptmodelsptmodels uses pre-trained models to evaluate image datasets and helps to understand which model works better.ptmodels.Table-of-Contents•Installation•How To Use•Classification•Credits•Related•LicenseTable of ContentsInstallationStable ReleaseFrom SourcesHow to UsePreprocessingImport LibraryPreTrainedModels ClassAvailable ModelsLoad Datasetload_models() Methodmodels_name() MethodClassificationfit() Methodtrain_specific_model() MethodEvaluationevaluate_saved_model() Methodpredict_image_saved_model() MethodCreditsRelatedSupportYou May Also LikeLicenseWhy must you document your project?InstallationStable ReleaseInstall ptmodels by usingpip installinto the terminalpipinstallptmodelsFrom SourcesTo install a Python package from a source other than the PyPI repository, you can download and unpack the source distribution yourself, and then use itssetup.pyscript to install the package in the usersite-packagesdirectory:Set up your user environmentUse thewgetcommand to download the distribution archive (for example, 0.1.0.tar.gz) from the source (for example,https://github.com/rafsunsheikh/ptmodels/archive/refs/tags/0.1.0.tar.gz); for example:wget https://github.com/rafsunsheikh/ptmodels/archive/refs/tags/0.1.0.tar.gzUsetarto unpack the archive. For example:tar ptmodels-0.1.0.tar.gzThe distribution should unpack into a similarly-named directory in your home directory (for example, ~/ptmodels-0.1.0).Change (cd) to the new directory, and then, on the command line, enter:python setup.py install --userThe--useroption directssetup.pyto install the package (for example, ptmodels) in the usersite-packagesdirectory for the running Python; for example:~/.local/lib/pythonX.Y/site-packages/ptmodelsPython automatically searches this directory for modules, so prepending this path to the PYTHONPATH environmental variable is not necessary.If you omit the--useroption,setup.pywill try to install the package in the globalsite-packagesdirectory (where you do not have the necessary permissions); as a result, the installation will fail.Alternatively, you can use the--homeor--prefixoption to install your package in a different location (where you have the necessary permissions); for example, to install your package in a subdirectory (for example, python-pkgs):Within your home directory, enter:python setup.py install --home=~/python-pkgsHow To UsePreprocessingOpen up Kaggle Notebook or Google Colab.Choose runtime with GPU support. (as the models are very large, it will be difficult to run it on your local machine and also without GPU.)Install ptmodels in one cell.!pip install ptmodelsRun the cell by pressing shift + enterImport LibraryImportPreTrainedModelsclass fromptmodels.Classifierpackage.fromptmodels.ClassifierimportPreTrainedModelsPreTrainedModels ClassPreTrainedModels class is the only class of this package. It's an easy-to-use class with some parameters. You can call the PreTrainedModels class without any arguments. That time default values will be set in the parametes. Or else you can provide your own arguments values.ArgumentsNUM_CLASSES: Takes the number of classes for classification. Default value is set to2.BATCH_SIZE: Trains the image dataset into batches. Defaults Batch size value is32.EPOCHS: Takes the number of number of epochs for the training. Default value set to1.LEARNING_RATE: Sets the learning rate for training the model. Default value set to1e-4.MOMENTUM: Sets the value of momentum for training the model. Default value set to0.9.Examplemodel = PreTrainedModels(NUM_CLASSES=10, BATCH_SIZE=32, EPOCHS=1, LEARNING_RATE=0.001, MOMENTUM=0.9)You can also consuly myGoogle Colab NotebookAvailable ModelsFollowing are the available models forptmodelspackage:ModelSize (MB)Top-1 AccuracyTop-5 AccuracyParametersDepthTime (ms) per inference step (CPU)Time (ms) per inference step (GPU)VGG1652871.3%90.1%138.4M1669.54.2VGG1954971.3%90.0%143.7M1984.84.4ResNet509874.9%92.1%25.6M10758.24.6ResNet50V29876.0%93.0%25.6M10345.64.4ResNet10117176.4%92.8%44.7M20989.65.2ResNet101V217177.2%93.8%44.7M20572.75.4ResNet15223276.6%93.1%60.4M311127.46.5ResNet152V223278.0%94.2%60.4M307107.56.6MobileNet1670.4%89.5%4.3M5522.63.4MobileNetV21471.3%90.1%3.5M10525.93.8DenseNet1213375.0%92.3%8.1M24277.15.4DenseNet1695776.2%93.2%14.3M33896.46.3DenseNet2018077.3%93.6%20.2M402127.26.7NASNetMobile2374.4%91.9%5.3M38927.06.7NASNetLarge34382.5%96.0%88.9M533344.520.0EfficientNetB02977.1%93.3%5.3M13246.04.9EfficientNetB13179.1%94.4%7.9M18660.25.6EfficientNetB23680.1%94.9%9.2M18680.86.5EfficientNetB34881.6%95.7%12.3M210140.08.8EfficientNetB47582.9%96.4%19.5M258308.315.1EfficientNetB511883.6%96.7%30.6M312579.225.3EfficientNetB616684.0%96.8%43.3M360958.140.4EfficientNetB725684.3%97.0%66.7M4381578.961.6EfficientNetV2B02978.7%94.3%7.2M---EfficientNetV2B13479.8%95.0%8.2M---EfficientNetV2B24280.5%95.1%10.2M---EfficientNetV2B35982.0%95.8%14.5M---EfficientNetV2S8883.9%96.7%21.6M---EfficientNetV2M22085.3%97.4%54.4M---EfficientNetV2L47985.7%97.5%119.0M---ConvNeXtTiny109.4281.3%-28.6M---ConvNeXtSmall192.2982.3%-50.2M---ConvNeXtBase338.5885.3%-88.5M---ConvNeXtLarge755.0786.3%-197.7M---ConvNeXtXLarge131086.7%-350.1M---All these models are taken from Keras Application API. These models are used as image classification using pre-trained weights. Prediction, feature extraction, and fine-tuning can be done using these models.Load DatasetYou can use any image dataset available online or use your own image dataset.Load your dataset in the preffered way.For this documentation we have usedCifar10image dataset that is freely available in thekeras.datasets.This dataset has 50,000 32x32 colored training images and 10,000  colored test images. There are 10 categories in this dataset. See more info at theCIFAR homepage.Example:We are getting the dataset fromtensorflow.keras.datasets.You can get your own dataset from anywhere.from tensorflow.keras.datasets import cifar10
(x_train, y_train), (x_test, y_test) = cifar10.load_data()After loading the dataset please split the dataset into(x_train, y_train), (x_test, y_test).For that you can usesklearn.model_selection.train_test_split(). For that you can follow the guidelines fromsklearn train_test_split()load_models() MethodLoad your models by usingload_models()method fromptmodelspackage.Arguments:x_train: provide your x_train from loaded dataset. It is required to get thewidth, height and channelof the images.Example :model.load_models(x_train)This method is going to take a while for lading all the pre-trained models and their weights. You are going to see the following into your terminal.Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5
58889256/58889256 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/vgg19/vgg19_weights_tf_dim_ordering_tf_kernels_notop.h5
80134624/80134624 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/resnet/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5
94765736/94765736 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/resnet/resnet50v2_weights_tf_dim_ordering_tf_kernels_notop.h5
94668760/94668760 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/resnet/resnet101_weights_tf_dim_ordering_tf_kernels_notop.h5
171446536/171446536 [==============================] - 2s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/resnet/resnet101v2_weights_tf_dim_ordering_tf_kernels_notop.h5
171317808/171317808 [==============================] - 2s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/resnet/resnet152_weights_tf_dim_ordering_tf_kernels_notop.h5
234698864/234698864 [==============================] - 2s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/resnet/resnet152v2_weights_tf_dim_ordering_tf_kernels_notop.h5
234545216/234545216 [==============================] - 2s 0us/step
WARNING:tensorflow:`input_shape` is undefined or non-square, or `rows` is not in [128, 160, 192, 224]. Weights for input shape (224, 224) will be loaded as the default.
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/mobilenet/mobilenet_1_0_224_tf_no_top.h5
17225924/17225924 [==============================] - 0s 0us/step
WARNING:tensorflow:`input_shape` is undefined or non-square, or `rows` is not in [96, 128, 160, 192, 224]. Weights for input shape (224, 224) will be loaded as the default.
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/mobilenet_v2/mobilenet_v2_weights_tf_dim_ordering_tf_kernels_1.0_224_no_top.h5
9406464/9406464 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/densenet/densenet121_weights_tf_dim_ordering_tf_kernels_notop.h5
29084464/29084464 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/densenet/densenet169_weights_tf_dim_ordering_tf_kernels_notop.h5
51877672/51877672 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/densenet/densenet201_weights_tf_dim_ordering_tf_kernels_notop.h5
74836368/74836368 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/nasnet/NASNet-mobile-no-top.h5
19993432/19993432 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/nasnet/NASNet-large-no-top.h5
343610240/343610240 [==============================] - 3s 0us/step
Downloading data from https://storage.googleapis.com/keras-applications/efficientnetb0_notop.h5
16705208/16705208 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/keras-applications/efficientnetb1_notop.h5
27018416/27018416 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/keras-applications/efficientnetb2_notop.h5
31790344/31790344 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/keras-applications/efficientnetb3_notop.h5
43941136/43941136 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/keras-applications/efficientnetb4_notop.h5
71686520/71686520 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/keras-applications/efficientnetb5_notop.h5
115263384/115263384 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/keras-applications/efficientnetb6_notop.h5
165234480/165234480 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/keras-applications/efficientnetb7_notop.h5
258076736/258076736 [==============================] - 2s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/efficientnet_v2/efficientnetv2-b0_notop.h5
24274472/24274472 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/efficientnet_v2/efficientnetv2-b1_notop.h5
28456008/28456008 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/efficientnet_v2/efficientnetv2-b2_notop.h5
35839040/35839040 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/efficientnet_v2/efficientnetv2-b3_notop.h5
52606240/52606240 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/efficientnet_v2/efficientnetv2-s_notop.h5
82420632/82420632 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/efficientnet_v2/efficientnetv2-m_notop.h5
214201816/214201816 [==============================] - 2s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/efficientnet_v2/efficientnetv2-l_notop.h5
473176280/473176280 [==============================] - 5s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/convnext/convnext_tiny_notop.h5
111650432/111650432 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/convnext/convnext_small_notop.h5
198551472/198551472 [==============================] - 1s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/convnext/convnext_base_notop.h5
350926856/350926856 [==============================] - 3s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/convnext/convnext_large_notop.h5
785596384/785596384 [==============================] - 7s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/convnext/convnext_xlarge_notop.h5
 853016576/1393257616 [=================>............] - ETA: 5smodels_name() Methodmodels_name()method will let you find out the loaded models names in your class object.No arguments are needed for this  method.Example:names = []
names = model.models_name()
print(names)Output:['VGG16', 'VGG19', 'ResNet50', 'ResNet50V2', 'ResNet101', 'ResNet101V2', 'ResNet152', 'ResNet152V2', 'MobileNet', 'MobileNetV2', 'DenseNet121', 'DenseNet169', 'EfficientNetV2B1', 'EfficientNetV2B2', 'EfficientNetV2B3', 'EfficientNetV2S', 'EfficientNetV2M', 'EfficientNetV2L', 'ConvNeXtTiny', 'ConvNeXtSmall', 'ConvNeXtBase', 'ConvNeXtLarge', 'ConvNeXtXLarge']ClassificationUsingptmodelspackage you can easily train your dataset using all the pre-trained models or using any specific models. All the small tasks are done already. You just need to provide the dataset to train using this package.For image classification, we are going to use two methods.fit() Methodtrain_specific_model() Methodfit() MethodUsing this method you can very easily train your dataset using all the pre-trained models.That will take a lot of time.So our suggestion is that, use a high GPU PC or useGoogle ColabNotebook orKaggleNotebook and load GPU into runtime.Arguments:x_train: x_train lists the images for train datasets without labels.y_train: y_train holds the labels for train datasets.x_test: x_test has the images for test dataset without labels.y_test: y_test has the labels for the test dataset.Returns:pandas.dataframewhich holds the evaluation metrics of all the pre-trained models.Example :dataframe = model.fit(x_train, y_train, x_test, y_test)This method also saves your return dataframe intoprediction.csvfile in your disk.Output:StartingTraining:VGG161563/1563[==============================]-24s10ms/step-loss:0.2274-accuracy:0.50631563/1563[==============================]-11s7ms/step313/313[==============================]-2s7ms/step
appendedsuccessfully

StartingTraining:VGG191563/1563[==============================]-19s11ms/step-loss:0.2313-accuracy:0.49691563/1563[==============================]-14s9ms/step313/313[==============================]-3s9ms/step
appendedsuccessfully

StartingTraining:ResNet501563/1563[==============================]-27s14ms/step-loss:0.2331-accuracy:0.49701563/1563[==============================]-18s10ms/step313/313[==============================]-4s12ms/step
appendedsuccessfully

StartingTraining:ResNet50V21563/1563[==============================]-26s14ms/step-loss:0.2843-accuracy:0.32911563/1563[==============================]-17s10ms/step313/313[==============================]-3s10ms/step
appendedsuccessfully

StartingTraining:ResNet1011563/1563[==============================]-43s23ms/step-loss:0.2363-accuracy:0.48961563/1563[==============================]-31s18ms/step313/313[==============================]-6s20ms/step
appendedsuccessfully

StartingTraining:ResNet101V21563/1563[==============================]-43s22ms/step-loss:0.2923-accuracy:0.30331563/1563[==============================]-30s18ms/step313/313[==============================]-6s19ms/step
appendedsuccessfully

StartingTraining:ResNet1521563/1563[==============================]-61s32ms/step-loss:0.2327-accuracy:0.50061563/1563[==============================]-44s26ms/step313/313[==============================]-9s28ms/step
appendedsuccessfully

StartingTraining:ResNet152V21563/1563[==============================]-62s33ms/step-loss:0.2959-accuracy:0.30031563/1563[==============================]-44s26ms/step313/313[==============================]-9s27ms/step
appendedsuccessfully

StartingTraining:MobileNet1563/1563[==============================]-14s8ms/step-loss:0.3206-accuracy:0.17841563/1563[==============================]-8s5ms/step313/313[==============================]-2s5ms/step
appendedsuccessfully

StartingTraining:MobileNetV21563/1563[==============================]-20s11ms/step-loss:0.3165-accuracy:0.19611563/1563[==============================]-13s8ms/step313/313[==============================]-2s7ms/step
appendedsuccessfully

StartingTraining:DenseNet1211563/1563[==============================]-42s21ms/step-loss:0.2424-accuracy:0.46281563/1563[==============================]-30s18ms/step313/313[==============================]-6s19ms/step
appendedsuccessfully

StartingTraining:DenseNet1691563/1563[==============================]-55s28ms/step-loss:0.2432-accuracy:0.45671563/1563[==============================]-41s24ms/step313/313[==============================]-7s23ms/step
appendedsuccessfully

StartingTraining:EfficientNetV2B11563/1563[==============================]-33s14ms/step-loss:0.2233-accuracy:0.51981563/1563[==============================]-28s17ms/step313/313[==============================]-5s15ms/step
appendedsuccessfully

StartingTraining:EfficientNetV2B21563/1563[==============================]-35s15ms/step-loss:0.2279-accuracy:0.51171563/1563[==============================]-29s17ms/step313/313[==============================]-5s16ms/step
appendedsuccessfully

StartingTraining:EfficientNetV2B31563/1563[==============================]-39s17ms/step-loss:0.2584-accuracy:0.42081563/1563[==============================]-34s20ms/step313/313[==============================]-6s19ms/step
appendedsuccessfully

StartingTraining:EfficientNetV2S1563/1563[==============================]-47s20ms/step-loss:0.2455-accuracy:0.45981563/1563[==============================]-43s25ms/step313/313[==============================]-7s24ms/step
appendedsuccessfully

StartingTraining:EfficientNetV2M1563/1563[==============================]-66s28ms/step-loss:0.3221-accuracy:0.23151563/1563[==============================]-60s35ms/step313/313[==============================]-11s35ms/step
appendedsuccessfully

StartingTraining:EfficientNetV2L1563/1563[==============================]-95s40ms/step-loss:0.2644-accuracy:0.40071563/1563[==============================]-83s48ms/step313/313[==============================]-15s48ms/step
appendedsuccessfully

StartingTraining:ConvNeXtTiny1563/1563[==============================]-60s30ms/step-loss:0.1644-accuracy:0.67411563/1563[==============================]-45s27ms/step313/313[==============================]-9s27ms/step
appendedsuccessfully

StartingTraining:ConvNeXtSmall1563/1563[==============================]-103s53ms/step-loss:0.1573-accuracy:0.68851563/1563[==============================]-83s49ms/step313/313[==============================]-16s50ms/step
appendedsuccessfully

StartingTraining:ConvNeXtBase1563/1563[==============================]-105s54ms/step-loss:0.1435-accuracy:0.72211563/1563[==============================]-83s50ms/step313/313[==============================]-15s48ms/step
appendedsuccessfully

StartingTraining:ConvNeXtLarge1563/1563[==============================]-117s62ms/step-loss:0.1237-accuracy:0.76621563/1563[==============================]-91s55ms/step313/313[==============================]-18s58ms/step
appendedsuccessfully

StartingTraining:ConvNeXtXLarge1563/1563[==============================]-129s69ms/step-loss:0.1178-accuracy:0.78451563/1563[==============================]-104s63ms/step313/313[==============================]-20s64ms/step
appendedsuccessfullyModelsAccuracytrainPrecisiontrainRecalltrain\0VGG160.6210.6210.6211VGG190.6020.6020.6022ResNet500.6220.6220.6223ResNet50V20.4120.4120.4124ResNet1010.6140.6140.6145ResNet101V20.3860.3860.3866ResNet1520.6220.6220.6227ResNet152V20.3790.3790.3798MobileNet0.2050.2050.2059MobileNetV20.2340.2340.23410DenseNet1210.5780.5780.57811DenseNet1690.5570.5570.55712EfficientNetV2B10.6520.6520.65213EfficientNetV2B20.6410.6410.64114EfficientNetV2B30.5930.5930.59315EfficientNetV2S0.6100.6100.61016EfficientNetV2M0.3840.3840.38417EfficientNetV2L0.5610.5610.56118ConvNeXtTiny0.7760.7760.77619ConvNeXtSmall0.7860.7860.78620ConvNeXtBase0.8150.8150.81521ConvNeXtLarge0.8550.8550.85522ConvNeXtXLarge0.8630.8630.863f1_scoretrainAccuracytestPrecisiontestRecalltestf1_scoretest00.6210.5950.5950.5950.59510.6020.5850.5850.5850.58520.6220.5940.5940.5940.59430.4120.3970.3970.3970.39740.6140.5780.5780.5780.57850.3860.3820.3820.3820.38260.6220.5900.5900.5900.59070.3790.3670.3670.3670.36780.2050.2010.2010.2010.20190.2340.2300.2300.2300.230100.5780.5530.5530.5530.553110.5570.5390.5390.5390.539120.6520.6310.6310.6310.631130.6410.6300.6300.6300.630140.5930.5830.5830.5830.583150.6100.6010.6010.6010.601160.3840.3810.3810.3810.381170.5610.5470.5470.5470.547180.7760.7400.7400.7400.740190.7860.7590.7590.7590.759200.8150.7850.7850.7850.785210.8550.8290.8290.8290.829220.8630.8310.8310.8310.831train_specific_model() MethodYou can train your dataset on a specific model using this method.You just have to specify themodel_name.The method will return the evaluation metrics of the trained model.Arguments:x_train: x_train lists the images for train datasets without labels.y_train: y_train holds the labels for train datasets.x_test: x_test has the images for test dataset without labels.y_test: y_test has the labels for the test dataset.model_namenum_classes: Takes the number of classes for classification. Default value is set to2.batch_size: Trains the image dataset into batches. Defaults Batch size value is32.epochs: Takes the number of number of epochs for the training. Default value set to1.learning_rate: Sets the learning rate for training the model. Default value set to1e-4.momentum: Sets the value of momentum for training the model. Default value set to0.9.SAVE_MODEL: This is abooleanargument which tells the method to save themodelandmodel weightto file or not. The default value is set toFalse.Return:pandas.dataframethat holds the evaluation metrics of the specific model on the image dataset.Example:df_VGG16 = model.train_specific_model( x_train, y_train, x_test, y_test, model_name, num_classes=10, batch_size=32, epochs=20, learning_rate=1e-4, momentum=0.9, SAVE_MODEL = True)Output:1563/1563 [==============================] - 37s 17ms/step - loss: 0.3047 - accuracy: 0.3329
Saved model to disk
1563/1563 [==============================] - 12s 7ms/step
313/313 [==============================] - 2s 7ms/stepEvaluationYou can easily load the specific model and the weights from the disk and evaluate using test dataset.You can evaluate the model using two simple methods as:evaluate_saved_model() Methodpredict_image_saved_model() Method.evaluate_saved_model() MethodThis method simple tells you the accuracy of the saved model.Arguments:x_test: x_test has the images for test dataset without labels.y_test: y_test has the labels for the test dataset.Example:model.evaluate_saved_model(x_test, y_test)Output:Loaded model from disk
accuracy: 53.04%predict_image_saved_model() MethodArgumentsimage_path: You have to provide the image path of your single image that you want to evaluate.image_width: You have to provide the image width on which your specific model is trained on.image_height: You have to provide the image height on which your specific model is trained on.Example:image_path  = '/content/maple.jpg'
image_width = 32
image_height = 32
prediction = model.predict_image_saved_model(image_path, image_width, image_height)In this example we are providing theimage_widthandimage_heightas both32, as our model is trained on32x32images.Output:Loaded model from disk

1/1 [==============================] - 0s 334ms/step
[[0.09631938 0.08813578 0.02288193 0.03976142 0.07516313 0.1624043
  0.04893952 0.16084285 0.04286739 0.26268432]]You can use this prediction for further evaluation like you can useargmax()method to get the highest value and also you can map the value with label names.CreditsThis software uses the following open source packages:TensorflowKerasScikit-learnNumpyPandasEmojis are taken fromherehighlight.jsRelatedLazyPredict- Classification using basic modelsSupportOrYou may also like...Signature Fraud Detection- A Django app to detect signature fraud from Bank checks.AIST- Artificial Intelligence Surveillance TowerParliament Bhaban- A fun OpenGL project for 2D animation.Mancala- A simple AI Mancala game built in PythonLicenseMITrafsunsheikh.github.io/Web· 
GitHub@rafsunsheikh· 
Twitter@RafsunSheikh· 
LinkedIn@md-rafsun-sheikh