Spaces:
Sleeping
Sleeping
| import tensorflow as tf | |
| from keras.models import load_model | |
| from keras.layers import Layer, Softmax | |
| import numpy as np | |
| test_datagen = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1. / 255) | |
| test_dir = "./dataset/test" | |
| batch_size = 1 | |
| test_data = test_datagen.flow_from_directory( | |
| test_dir, | |
| target_size=(224, 224), | |
| color_mode="rgb", | |
| batch_size=batch_size, | |
| class_mode="categorical", | |
| shuffle=True, | |
| seed=42 | |
| ) | |
| class_names = ['Black Widow', | |
| 'Blue Tarantula', | |
| 'Bold Jumper', | |
| 'Brown Grass Spider', | |
| 'Brown Recluse Spider', | |
| 'Deinopis Spider', | |
| 'Golden Orb Weaver', | |
| 'Hobo Spider', | |
| 'Huntsman Spider', | |
| 'Ladybird Mimic Spider', | |
| 'Peacock Spider', | |
| 'Red Knee Tarantula', | |
| 'Spiny-backed Orb-weaver', | |
| 'White Kneed Tarantula', | |
| 'Yellow Garden Spider'] | |
| class Normalization(Layer): | |
| def __init__(self, name=None, **kwargs): | |
| super(Normalization, self).__init__() | |
| self.mean = [0.485, 0.456, 0.406] | |
| self.std = [0.229, 0.224, 0.225] | |
| def call(self, inputs): | |
| return (inputs - self.mean) / self.std | |
| cnn_model = load_model("./spider.h5", custom_objects={'Normalization': Normalization}) | |
| image, label = next(iter(test_data)) | |
| cnt = 0 | |
| max_num = 0 | |
| for (image, label) in test_data: | |
| max_num += 1 | |
| y_hat = np.argmax(cnn_model.predict(image)[0]) | |
| y_true = np.argmax(label) | |
| if y_true == y_hat: | |
| cnt += 1 | |
| print("{:30s}{:30s}{}".format(class_names[y_hat], class_names[y_true], y_true == y_hat)) | |
| if max_num == 200: | |
| break | |
| print("Accuracy: ", cnt/max_num) | |