From 9d58ae714f26767d3672a55329ef4d71aa33ec88 Mon Sep 17 00:00:00 2001 From: Matthias Bisping Date: Sun, 27 Mar 2022 17:55:01 +0200 Subject: [PATCH] renaming --- .../{predictor => classifier}/__init__.py | 0 .../estimator.py => classifier/classifier.py} | 5 +++-- .../image_classifier.py} | 8 ++++---- image_prediction/flask.py | 2 +- .../{estimator_test.py => classifier_test.py} | 4 ++-- test/unit_tests/conftest.py | 14 +++++++------- ...{predictor_test.py => image_classifier_test.py} | 3 +-- 7 files changed, 18 insertions(+), 18 deletions(-) rename image_prediction/{predictor => classifier}/__init__.py (100%) rename image_prediction/{estimator/estimator.py => classifier/classifier.py} (90%) rename image_prediction/{predictor/predictor.py => classifier/image_classifier.py} (72%) rename test/unit_tests/{estimator_test.py => classifier_test.py} (85%) rename test/unit_tests/{predictor_test.py => image_classifier_test.py} (88%) diff --git a/image_prediction/predictor/__init__.py b/image_prediction/classifier/__init__.py similarity index 100% rename from image_prediction/predictor/__init__.py rename to image_prediction/classifier/__init__.py diff --git a/image_prediction/estimator/estimator.py b/image_prediction/classifier/classifier.py similarity index 90% rename from image_prediction/estimator/estimator.py rename to image_prediction/classifier/classifier.py index 24e06f8..53f474f 100644 --- a/image_prediction/estimator/estimator.py +++ b/image_prediction/classifier/classifier.py @@ -8,13 +8,14 @@ from image_prediction.utils import get_logger logger = get_logger() -class Estimator: +class Classifier: def __init__(self, estimator_adapter: EstimatorAdapter, classes: Mapping[int, str]): """Abstraction layer over different estimator backends (e.g. keras or scikit-learn). For each backend to be used an EstimatorAdapter must be implemented. Args: - estimator_adapter: adapter for a given estimator backend + estimator_adapter: adapter for a given estimator backend; expected to be a classifier that returns numeric + labels as predictions classes: mapping from a numerical label to a human-readable label for classes """ self.__estimator_adapter = estimator_adapter diff --git a/image_prediction/predictor/predictor.py b/image_prediction/classifier/image_classifier.py similarity index 72% rename from image_prediction/predictor/predictor.py rename to image_prediction/classifier/image_classifier.py index af14760..5f77cb8 100644 --- a/image_prediction/predictor/predictor.py +++ b/image_prediction/classifier/image_classifier.py @@ -3,18 +3,18 @@ from typing import List from PIL.Image import Image -from image_prediction.estimator.estimator import Estimator +from image_prediction.classifier.classifier import Classifier from image_prediction.estimator.preprocessor.preprocessor import Preprocessor from image_prediction.estimator.preprocessor.preprocessors.basic import BasicPreprocessor from image_prediction.utils import chunk_iterable -class Predictor: - def __init__(self, estimator: Estimator, preprocessor: Preprocessor = None): +class ImageClassifier: + def __init__(self, estimator: Classifier, preprocessor: Preprocessor = None): self.estimator = estimator self.preprocessor = preprocessor if preprocessor else BasicPreprocessor() self.pipe = lambda batch: self.estimator(self.preprocessor(batch)) - def predict(self, images: List[Image], batch_size=2): + def predict(self, images: List[Image], batch_size=16): batches = chunk_iterable(images, chunk_size=batch_size) return chain(*map(self.pipe, batches)) diff --git a/image_prediction/flask.py b/image_prediction/flask.py index 33c3cf3..19a0e8c 100644 --- a/image_prediction/flask.py +++ b/image_prediction/flask.py @@ -49,7 +49,7 @@ def make_prediction_server(predict_fn: Callable): except KeyError: raise - logger.debug("Running predictor on document...") + logger.debug("Running classifier on document...") try: predictions = process() response = jsonify(predictions) diff --git a/test/unit_tests/estimator_test.py b/test/unit_tests/classifier_test.py similarity index 85% rename from test/unit_tests/estimator_test.py rename to test/unit_tests/classifier_test.py index ff8dafd..4241fd5 100644 --- a/test/unit_tests/estimator_test.py +++ b/test/unit_tests/classifier_test.py @@ -10,8 +10,8 @@ logger.setLevel(logging.DEBUG) @pytest.mark.parametrize("estimator_type", ["mock", "keras"]) @pytest.mark.parametrize("batch_size", [0, 1, 2, 16, 32, 64]) -def test_predict(estimator, input_batch, expected_predictions): - predictions = estimator.predict(input_batch) +def test_predict(classifier, input_batch, expected_predictions): + predictions = classifier.predict(input_batch) assert predictions == expected_predictions diff --git a/test/unit_tests/conftest.py b/test/unit_tests/conftest.py index c119fa7..a8835db 100644 --- a/test/unit_tests/conftest.py +++ b/test/unit_tests/conftest.py @@ -4,22 +4,22 @@ import numpy as np import pytest from PIL import Image +from image_prediction.classifier.classifier import Classifier +from image_prediction.classifier.image_classifier import ImageClassifier from image_prediction.estimator.adapter.adapters.keras import KerasEstimatorAdapter from image_prediction.estimator.adapter.adapters.mock import DummyEstimator, EstimatorAdapterMock -from image_prediction.estimator.estimator import Estimator from image_prediction.exceptions import UnknownEstimatorAdapter -from image_prediction.predictor.predictor import Predictor @pytest.fixture -def predictor(estimator, monkeypatch, expected_predictions): - return Predictor(estimator) +def predictor(classifier, monkeypatch, expected_predictions): + return ImageClassifier(classifier) @pytest.fixture -def estimator(estimator_adapter, classes): - estimator = Estimator(estimator_adapter, classes) - return estimator +def classifier(estimator_adapter, classes): + classifier = Classifier(estimator_adapter, classes) + return classifier @pytest.fixture diff --git a/test/unit_tests/predictor_test.py b/test/unit_tests/image_classifier_test.py similarity index 88% rename from test/unit_tests/predictor_test.py rename to test/unit_tests/image_classifier_test.py index 63f1caa..5ecee79 100644 --- a/test/unit_tests/predictor_test.py +++ b/test/unit_tests/image_classifier_test.py @@ -4,8 +4,7 @@ from image_prediction.utils import chunk_iterable @pytest.mark.parametrize("estimator_type", ["mock", "keras"]) -# @pytest.mark.parametrize("batch_size", [0, 1, 2, 16, 32, 64]) -@pytest.mark.parametrize("batch_size", [0, 1, 2, 4]) +@pytest.mark.parametrize("batch_size", [0, 1, 2, 16, 32, 64]) def test_predict(predictor, images, expected_predictions): predictions = list(predictor.predict(images)) assert predictions == expected_predictions