From 73a039cb3ff541c821fd1813493e87d57cb4c427 Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Wed, 30 Jun 2021 18:49:34 +0530 Subject: [PATCH 01/11] confusion matrix :rocket: :art: --- chitra/__init__.py | 2 +- chitra/visualization/__init__.py | 0 chitra/visualization/metrics.py | 60 ++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 chitra/visualization/__init__.py create mode 100644 chitra/visualization/metrics.py diff --git a/chitra/__init__.py b/chitra/__init__.py index 26b62510..e9192419 100644 --- a/chitra/__init__.py +++ b/chitra/__init__.py @@ -1,5 +1,5 @@ """A Deep Learning Computer Vision Utility library""" -__version__ = "0.1.0b1" +__version__ = "0.1.0b2" from .image import Chitra diff --git a/chitra/visualization/__init__.py b/chitra/visualization/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/chitra/visualization/metrics.py b/chitra/visualization/metrics.py new file mode 100644 index 00000000..a601e82f --- /dev/null +++ b/chitra/visualization/metrics.py @@ -0,0 +1,60 @@ +"""https://www.kaggle.com/grfiv4/plot-a-confusion-matrix""" +from itertools import product +from typing import List, Union + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.metrics import confusion_matrix + +from chitra.logging import logger + + +def detect_multilabel(labels: Union[List, np.ndarray]): + if isinstance(labels, (np.ndarray, list, tuple)): + labels = np.unique(labels) + else: + raise UserWarning( + "expect data type for label was list or np.ndarray but got %s", + type(labels)) + + if len(labels) > 2: + return True + return False + + +def cm_accuracy(cm: np.ndarray): + return np.trace(cm) / float(np.sum(cm)) + + +def plot_confusion_matrix(y_pred: Union[np.ndarray, List], + y_true: Union[np.ndarray, List], + display_labels=None, + include_values: bool = True, + title: str = 'Confusion Matrix', + cmap: str = None): + if detect_multilabel(y_true): + logger.warning("You might want to use multi-label version!") + + if display_labels is None: + display_labels = np.unique(y_true) + + n_classes = len(display_labels) + tick_marks = np.arange(n_classes) + + if cmap is None: + cmap = plt.get_cmap('Blues') + + cm = confusion_matrix(y_true, y_pred) + plt.imshow(cm, cmap=cmap) + + if include_values: + for i, j in product(range(n_classes), range(n_classes)): + plt.text(i, j, "{:,}".format(cm[i, j])) + + plt.title(title) + plt.xlabel('Predicted Label') + plt.ylabel('True Label') + plt.xticks(tick_marks, display_labels, rotation=45) + plt.yticks(tick_marks, display_labels) + + plt.show() From b31f00b494a2c5db8c7b21a8b627d5638c648633 Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Wed, 30 Jun 2021 18:56:45 +0530 Subject: [PATCH 02/11] add accuracy error --- chitra/visualization/metrics.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/chitra/visualization/metrics.py b/chitra/visualization/metrics.py index a601e82f..8385fb9d 100644 --- a/chitra/visualization/metrics.py +++ b/chitra/visualization/metrics.py @@ -45,16 +45,20 @@ def plot_confusion_matrix(y_pred: Union[np.ndarray, List], cmap = plt.get_cmap('Blues') cm = confusion_matrix(y_true, y_pred) + accuracy = cm_accuracy(cm) + error = 1 - accuracy + plt.imshow(cm, cmap=cmap) if include_values: for i, j in product(range(n_classes), range(n_classes)): plt.text(i, j, "{:,}".format(cm[i, j])) - plt.title(title) - plt.xlabel('Predicted Label') - plt.ylabel('True Label') plt.xticks(tick_marks, display_labels, rotation=45) plt.yticks(tick_marks, display_labels) + plt.title(title) + plt.xlabel( + f'Predicted Label\nAccuracy={accuracy:0.4f}; Error={error:0.4f}') + plt.ylabel('True Label') plt.show() From 612a5dddfbfc3faebf283b33409a5ab610972d8d Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Wed, 30 Jun 2021 20:25:10 +0530 Subject: [PATCH 03/11] add test :white_check_mark: --- tests/test_metrics.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tests/test_metrics.py diff --git a/tests/test_metrics.py b/tests/test_metrics.py new file mode 100644 index 00000000..44e61068 --- /dev/null +++ b/tests/test_metrics.py @@ -0,0 +1,27 @@ +import numpy as np +import pytest + +from chitra.visualization.metrics import cm_accuracy +from chitra.visualization.metrics import detect_multilabel +from chitra.visualization.metrics import plot_confusion_matrix + + +def test_detect_multilabel(): + with pytest.raises(UserWarning): + detect_multilabel({"label1": "this will raise UserWarning"}) + + assert detect_multilabel([1, 2, 3, 4]) + assert not detect_multilabel([0, 1, 1, 0]) + + +def test_cm_accuracy(): + x = np.asarray([[1, 2], [1, 2]]) + assert cm_accuracy(x) == 0.5 + + +def test_plot_confusion_matrix(): + y_pred = [1, 1, 0, 1] + y_true = [0, 1, 0, 1] + display_labels = ('watermark', 'non watermark') + assert plot_confusion_matrix(y_pred, y_true, + display_labels=display_labels) is None From 708a0473f603fd5b05ca371c2e3fb19cf0f4ac38 Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Wed, 30 Jun 2021 22:42:38 +0530 Subject: [PATCH 04/11] update --- MANIFEST.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index 5c0e7ced..4d393334 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,4 @@ -include settings.ini +include pyproject.toml include LICENSE include CONTRIBUTING.md include README.md From 809fbd17c77cca481daf7bb459c07053d2c10b41 Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Wed, 30 Jun 2021 22:44:48 +0530 Subject: [PATCH 05/11] add scikit learn --- pyproject.toml | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 13fd823e..d775a2c7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,7 +30,8 @@ requires = [ "matplotlib", "pillow", "imgaug >=0.4.0", - "requests >=2.24.0,<3.0.0" + "requests >=2.24.0,<3.0.0", + "scikit-learn", ] description-file = "README.md" requires-python = ">=3.7" @@ -40,17 +41,10 @@ Documentation = "https://chitra.readthedocs.io/en/latest" [tool.flit.metadata.requires-extra] all = [ - # Converter - "onnx", - "onnx2pytorch", - "tf2onnx", - # Server + "onnx", "onnx2pytorch", "tf2onnx", "fastapi", "uvicorn", "pydantic", - # tf "tensorflow-serving-api", - # torch - "grpc", - "torch" + "torch", ] [tool.isort] From 1c65cf64805a007ef3ecd743467271b92f876255 Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Wed, 30 Jun 2021 22:53:49 +0530 Subject: [PATCH 06/11] fix anti-pattern --- chitra/visualization/metrics.py | 4 ++-- tests/{test_metrics.py => test_visualization_metrics.py} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename tests/{test_metrics.py => test_visualization_metrics.py} (100%) diff --git a/chitra/visualization/metrics.py b/chitra/visualization/metrics.py index 8385fb9d..178a3ed2 100644 --- a/chitra/visualization/metrics.py +++ b/chitra/visualization/metrics.py @@ -14,8 +14,8 @@ def detect_multilabel(labels: Union[List, np.ndarray]): labels = np.unique(labels) else: raise UserWarning( - "expect data type for label was list or np.ndarray but got %s", - type(labels)) + "expect data type for label was list or np.ndarray but got %s". + format(type(labels))) if len(labels) > 2: return True diff --git a/tests/test_metrics.py b/tests/test_visualization_metrics.py similarity index 100% rename from tests/test_metrics.py rename to tests/test_visualization_metrics.py From e242376228b81a767e90f459b8fc3173f9e45d65 Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Wed, 30 Jun 2021 23:03:34 +0530 Subject: [PATCH 07/11] add examples --- nbs/examples/visualization/confusion_matrix.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 nbs/examples/visualization/confusion_matrix.py diff --git a/nbs/examples/visualization/confusion_matrix.py b/nbs/examples/visualization/confusion_matrix.py new file mode 100644 index 00000000..5d0b0e76 --- /dev/null +++ b/nbs/examples/visualization/confusion_matrix.py @@ -0,0 +1,7 @@ +from chitra.visualization.metrics import plot_confusion_matrix + +y_pred = [1, 1, 0, 1] +y_true = [0, 1, 0, 1] +display_labels = ('class A', 'class B') + +plot_confusion_matrix(y_pred, y_true, display_labels=display_labels) From 83e218bba46ca56a1c51168d81a207eff66726e3 Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Wed, 30 Jun 2021 23:03:42 +0530 Subject: [PATCH 08/11] fix string format --- chitra/visualization/metrics.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chitra/visualization/metrics.py b/chitra/visualization/metrics.py index 178a3ed2..58f36e8f 100644 --- a/chitra/visualization/metrics.py +++ b/chitra/visualization/metrics.py @@ -14,8 +14,8 @@ def detect_multilabel(labels: Union[List, np.ndarray]): labels = np.unique(labels) else: raise UserWarning( - "expect data type for label was list or np.ndarray but got %s". - format(type(labels))) + f"expect data type for label was list or np.ndarray but got {type(labels)}" + ) if len(labels) > 2: return True From 9092707f865c07ecfb0db01b378dc7fa9cf3efde Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Wed, 30 Jun 2021 23:13:03 +0530 Subject: [PATCH 09/11] refactor --- docs/.gitignore | 1 - docs/sitemap.xml | 42 ------------------ {nbs => examples}/assets/chitra_banner.png | Bin {nbs => examples}/assets/images/logo.png | Bin .../examples/Image Utility.ipynb | 0 {nbs => examples}/examples/model_server.py | 0 .../visualization/confusion_matrix.py | 0 {nbs => examples/nbs}/00_core.ipynb | 0 {nbs => examples/nbs}/01_image.ipynb | 0 {nbs => examples/nbs}/02_datagenerator.ipynb | 0 {nbs => examples/nbs}/03_trainer.ipynb | 0 {nbs => examples/nbs}/04_dataloader.ipynb | 0 {nbs => examples/nbs}/05_visualization.ipynb | 0 {nbs => examples/nbs}/06_tf_utils.ipynb | 0 {nbs => examples/nbs}/07_import_utils.ipynb | 0 .../nbs}/08_model_converter.ipynb | 0 {nbs => examples/nbs}/example_01.ipynb | 0 .../nbs}/image-classification-example.ipynb | 0 {nbs => examples/nbs}/index.ipynb | 0 {nbs => examples/nbs}/playground.ipynb | 0 20 files changed, 43 deletions(-) delete mode 100644 docs/.gitignore delete mode 100644 docs/sitemap.xml rename {nbs => examples}/assets/chitra_banner.png (100%) rename {nbs => examples}/assets/images/logo.png (100%) rename {nbs => examples}/examples/Image Utility.ipynb (100%) rename {nbs => examples}/examples/model_server.py (100%) rename {nbs => examples}/examples/visualization/confusion_matrix.py (100%) rename {nbs => examples/nbs}/00_core.ipynb (100%) rename {nbs => examples/nbs}/01_image.ipynb (100%) rename {nbs => examples/nbs}/02_datagenerator.ipynb (100%) rename {nbs => examples/nbs}/03_trainer.ipynb (100%) rename {nbs => examples/nbs}/04_dataloader.ipynb (100%) rename {nbs => examples/nbs}/05_visualization.ipynb (100%) rename {nbs => examples/nbs}/06_tf_utils.ipynb (100%) rename {nbs => examples/nbs}/07_import_utils.ipynb (100%) rename {nbs => examples/nbs}/08_model_converter.ipynb (100%) rename {nbs => examples/nbs}/example_01.ipynb (100%) rename {nbs => examples/nbs}/image-classification-example.ipynb (100%) rename {nbs => examples/nbs}/index.ipynb (100%) rename {nbs => examples/nbs}/playground.ipynb (100%) diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index 57510a2b..00000000 --- a/docs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_site/ diff --git a/docs/sitemap.xml b/docs/sitemap.xml deleted file mode 100644 index 32e08ac0..00000000 --- a/docs/sitemap.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - https://chitra.aniketmaurya.com/ - 2021-06-21T18:44:36+00:00 - 1.00 - - - https://chitra.aniketmaurya.com/index.html - 2021-06-21T18:44:36+00:00 - 0.80 - - - https://chitra.aniketmaurya.com/examples/chitra-class/chitra-class.html - 2021-06-21T18:44:36+00:00 - 0.80 - - - https://chitra.aniketmaurya.com/examples/image-classification/image-classification.html - 2021-06-21T18:44:36+00:00 - 0.80 - - - https://chitra.aniketmaurya.com/examples/model-server/model-server.html - 2021-06-21T18:44:36+00:00 - 0.80 - - - https://chitra.aniketmaurya.com/license.html - 2021-06-21T18:44:36+00:00 - 0.80 - - - - diff --git a/nbs/assets/chitra_banner.png b/examples/assets/chitra_banner.png similarity index 100% rename from nbs/assets/chitra_banner.png rename to examples/assets/chitra_banner.png diff --git a/nbs/assets/images/logo.png b/examples/assets/images/logo.png similarity index 100% rename from nbs/assets/images/logo.png rename to examples/assets/images/logo.png diff --git a/nbs/examples/Image Utility.ipynb b/examples/examples/Image Utility.ipynb similarity index 100% rename from nbs/examples/Image Utility.ipynb rename to examples/examples/Image Utility.ipynb diff --git a/nbs/examples/model_server.py b/examples/examples/model_server.py similarity index 100% rename from nbs/examples/model_server.py rename to examples/examples/model_server.py diff --git a/nbs/examples/visualization/confusion_matrix.py b/examples/examples/visualization/confusion_matrix.py similarity index 100% rename from nbs/examples/visualization/confusion_matrix.py rename to examples/examples/visualization/confusion_matrix.py diff --git a/nbs/00_core.ipynb b/examples/nbs/00_core.ipynb similarity index 100% rename from nbs/00_core.ipynb rename to examples/nbs/00_core.ipynb diff --git a/nbs/01_image.ipynb b/examples/nbs/01_image.ipynb similarity index 100% rename from nbs/01_image.ipynb rename to examples/nbs/01_image.ipynb diff --git a/nbs/02_datagenerator.ipynb b/examples/nbs/02_datagenerator.ipynb similarity index 100% rename from nbs/02_datagenerator.ipynb rename to examples/nbs/02_datagenerator.ipynb diff --git a/nbs/03_trainer.ipynb b/examples/nbs/03_trainer.ipynb similarity index 100% rename from nbs/03_trainer.ipynb rename to examples/nbs/03_trainer.ipynb diff --git a/nbs/04_dataloader.ipynb b/examples/nbs/04_dataloader.ipynb similarity index 100% rename from nbs/04_dataloader.ipynb rename to examples/nbs/04_dataloader.ipynb diff --git a/nbs/05_visualization.ipynb b/examples/nbs/05_visualization.ipynb similarity index 100% rename from nbs/05_visualization.ipynb rename to examples/nbs/05_visualization.ipynb diff --git a/nbs/06_tf_utils.ipynb b/examples/nbs/06_tf_utils.ipynb similarity index 100% rename from nbs/06_tf_utils.ipynb rename to examples/nbs/06_tf_utils.ipynb diff --git a/nbs/07_import_utils.ipynb b/examples/nbs/07_import_utils.ipynb similarity index 100% rename from nbs/07_import_utils.ipynb rename to examples/nbs/07_import_utils.ipynb diff --git a/nbs/08_model_converter.ipynb b/examples/nbs/08_model_converter.ipynb similarity index 100% rename from nbs/08_model_converter.ipynb rename to examples/nbs/08_model_converter.ipynb diff --git a/nbs/example_01.ipynb b/examples/nbs/example_01.ipynb similarity index 100% rename from nbs/example_01.ipynb rename to examples/nbs/example_01.ipynb diff --git a/nbs/image-classification-example.ipynb b/examples/nbs/image-classification-example.ipynb similarity index 100% rename from nbs/image-classification-example.ipynb rename to examples/nbs/image-classification-example.ipynb diff --git a/nbs/index.ipynb b/examples/nbs/index.ipynb similarity index 100% rename from nbs/index.ipynb rename to examples/nbs/index.ipynb diff --git a/nbs/playground.ipynb b/examples/nbs/playground.ipynb similarity index 100% rename from nbs/playground.ipynb rename to examples/nbs/playground.ipynb From 06b76fd5f535024f540f776f71732387d42fd2ae Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Wed, 30 Jun 2021 23:13:30 +0530 Subject: [PATCH 10/11] add docs :memo: --- docs/source/visualization/metrics.md | 15 +++++++++++++++ docs/source/visualization/preview.png | Bin 0 -> 97187 bytes 2 files changed, 15 insertions(+) create mode 100644 docs/source/visualization/metrics.md create mode 100644 docs/source/visualization/preview.png diff --git a/docs/source/visualization/metrics.md b/docs/source/visualization/metrics.md new file mode 100644 index 00000000..f6a880f5 --- /dev/null +++ b/docs/source/visualization/metrics.md @@ -0,0 +1,15 @@ +# Visualizing Metrics + +## Plot Confusion Matrix + +```python +from chitra.visualization.metrics import plot_confusion_matrix + +y_pred = [1, 1, 0, 1] +y_true = [0, 1, 0, 1] +display_labels = ('class A', 'class B') + +plot_confusion_matrix(y_pred, y_true, display_labels=display_labels) +``` + +![Preview](./preview.png) diff --git a/docs/source/visualization/preview.png b/docs/source/visualization/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..431a76dfc6aec14de4f426a15ba1f44cdc9f14c6 GIT binary patch literal 97187 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

ut|38u;%xVVg$pd4!vq><`@Qrh{w)`(uIsj0&N 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 KzEG>{6!|ZpN|QJM literal 0 HcmV?d00001 From 5dbec8e0e6ed10087c9882f4360c0730da5282a5 Mon Sep 17 00:00:00 2001 From: Aniket Maurya Date: Wed, 30 Jun 2021 23:17:09 +0530 Subject: [PATCH 11/11] update --- examples/examples/model_server.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/examples/model_server.py b/examples/examples/model_server.py index 6dfe1792..1c7dceca 100644 --- a/examples/examples/model_server.py +++ b/examples/examples/model_server.py @@ -1,4 +1,3 @@ from chitra.serve import create_api -model = lambda x: x -app = create_api(model, run=True, api_type='question-ans') +app = create_api(lambda x: x, run=True, api_type='question-ans')