| | import os |
| | import numpy as np |
| | import tensorflow as tf |
| | from tensorflow.keras.preprocessing.image import ImageDataGenerator |
| | from tensorflow.keras.models import load_model |
| | from sklearn.metrics import classification_report, confusion_matrix |
| | import pickle |
| |
|
| | |
| | model = load_model("malware_classifier_lime.h5") |
| |
|
| | data_dir = 'Malign/extract' |
| |
|
| | |
| | with open("cache.pkl", "rb") as f: |
| | num_classes = pickle.load(f) |
| |
|
| | |
| | batch_size = 32 |
| | image_size = (200, 200) |
| |
|
| | |
| | test_datagen = ImageDataGenerator(rescale=1./255) |
| |
|
| | test_generator = test_datagen.flow_from_directory( |
| | data_dir, |
| | target_size=image_size, |
| | batch_size=batch_size, |
| | class_mode='categorical', |
| | shuffle=False |
| | ) |
| |
|
| | |
| | print("Evaluating the model...") |
| | score = model.evaluate(test_generator) |
| | print("Loss: ", score[0]) |
| | print("Accuracy: ", score[1]) |
| |
|
| | |
| | print("Predicting the class labels...") |
| | y_pred = model.predict(test_generator) |
| | y_pred_classes = np.argmax(y_pred, axis=1) |
| |
|
| | |
| | print("Classification report:") |
| | print(classification_report(test_generator.classes, y_pred_classes, target_names=test_generator.class_indices.keys())) |
| |
|
| | |
| | print("Confusion matrix:") |
| | print(confusion_matrix(test_generator.classes, y_pred_classes)) |
| |
|