Spaces:
Sleeping
Sleeping
| import numpy as np | |
| import pickle | |
| from .model.model import sigmoid | |
| import os | |
| def obtain_files_model() : | |
| path = os.path.join(os.path.dirname(__file__), "classifiers", "flowers_model.pkl") | |
| with open(path, "rb") as f: | |
| classifiers = pickle.load(f) | |
| path = os.path.join(os.path.dirname(__file__), "classifiers", "scaler.pkl") | |
| with open(path, "rb") as f: | |
| scaler = pickle.load(f) | |
| path = os.path.join(os.path.dirname(__file__), "classifiers", "encoder.pkl") | |
| with open(path, "rb") as f: | |
| encoder = pickle.load(f) | |
| return classifiers, scaler, encoder | |
| def load_image(image, size=(64, 64)): | |
| img = image.resize(size) | |
| img_array = np.array(img).astype(np.float32) / 255.0 | |
| return img_array.flatten().reshape(1, -1) | |
| def predict_class(X, classifiers, encoder): | |
| m = X.shape[0] | |
| X = np.hstack([np.ones((m, 1)), X]) | |
| num_classes = len(classifiers) | |
| probs = np.zeros((m, num_classes)) | |
| for c, w in classifiers.items(): | |
| z = np.dot(X, w) | |
| prob = sigmoid(z) | |
| probs[:, c] = prob | |
| max_prob = np.argmax(probs, axis=1) | |
| predicted_class = encoder.inverse_transform([max_prob])[0] | |
| return predicted_class |