From d1dd9eaf155438538bdf58db3ee5d2989f7ff285 Mon Sep 17 00:00:00 2001 From: Korbinian Koch Date: Wed, 7 Aug 2024 14:44:50 +0200 Subject: [PATCH 1/5] add vmin and vmax parameters to viz --- .github/images.png | Bin 0 -> 93654 bytes README.md | 4 ++++ 2 files changed, 4 insertions(+) create mode 100644 .github/images.png diff --git a/.github/images.png b/.github/images.png new file mode 100644 index 0000000000000000000000000000000000000000..13ab5f3e1823731bb7cd20b9ca966cecb3fc0129 GIT binary patch literal 93654 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index c0eb13b..9ac17fe 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,10 @@ img = dataset[0][0] img.viz() ✅ ``` +
+ image visualization +
+ By default, images get downscaled to the size of your terminal, but you can make them even smaller if you want: ```python From 4fc1a49f6b20033b1f4711e3d93c89145a8401fe Mon Sep 17 00:00:00 2001 From: Korbinian Koch Date: Wed, 7 Aug 2024 15:13:56 +0200 Subject: [PATCH 2/5] update README --- .github/confusion_matrix.png | Bin 0 -> 37713 bytes README.md | 18 ++++++++++--- tensorhue/colors.py | 28 ++++++++++++++++--- tensorhue/viz.py | 18 ++++++------- tests/test_colors.py | 51 ++++++++++++++++++++++++++++++++++- 5 files changed, 98 insertions(+), 17 deletions(-) create mode 100644 .github/confusion_matrix.png diff --git a/.github/confusion_matrix.png b/.github/confusion_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..8d32f5d0c72f57a8248260e28bdad87d4f728c85 GIT binary patch literal 37713 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 9ac17fe..418c300 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,9 @@ np.array([1,2,3]).viz() ❌ tensorhue.viz(np.array([1,2,3])) ✅ ``` -Pillow images get visualized in RGB using `.viz()`: +## Images + +Pillow images can be visualized in RGB using `.viz()`: ```python from torchvision.datasets import CIFAR10 @@ -70,7 +72,7 @@ img.viz() ✅ ```
- image visualization + image visualization
By default, images get downscaled to the size of your terminal, but you can make them even smaller if you want: @@ -100,7 +102,7 @@ Alternatively, you can overwrite the default ColorScheme: tensorhue.set_printoptions(colorscheme=cs) ``` -## Advanced colors +## Advanced colormaps and normalization By default, TensorHue normalizes numerical values between 0 and 1 and then applies the matplotlib colormap. If you want to use diverging colormaps such as `coolwarm` or `bwr` and the value 0 to be mapped to the middle of the colormap, you need to specify the normailzer, e.g. `matplotlib.colors.CenteredNorm`: @@ -110,3 +112,13 @@ cs = ColorScheme(colormap=colormaps['bwr'], normalize=CenteredNorm(vcenter=0)) t.viz(cs) ``` + +You can also specify the normalization range manually, for example when you want to visualize a confusion matrix where colors should be mapped to the range [0, 1], but the actual values of the tensor in the range [0.01, 0.73]: + +``` +conf_matrix.viz(vmin=0, vmax=1, scale=3) +``` + +
+ confusion matrix +
diff --git a/tensorhue/colors.py b/tensorhue/colors.py index 3ae3f05..c35eb59 100644 --- a/tensorhue/colors.py +++ b/tensorhue/colors.py @@ -1,8 +1,9 @@ from __future__ import annotations +import warnings from rich.color_triplet import ColorTriplet from matplotlib import colormaps -from matplotlib.colors import Colormap, Normalize +from matplotlib.colors import Colormap, Normalize, CenteredNorm import numpy as np @@ -81,14 +82,33 @@ def ninf_color(self, value): self._ninf_color = value self._colormap.set_under(value.normalized) - def __call__(self, data: np.ndarray) -> np.ndarray: + def __call__(self, data: np.ndarray, **kwargs) -> np.ndarray: if data.dtype == "bool": true_values = np.array(self.true_color, dtype=np.uint8) false_values = np.array(self.false_color, dtype=np.uint8) return np.where(data[..., np.newaxis], true_values, false_values) data_noinf = np.where(np.isinf(data), np.nan, data) - self.normalize.vmin = np.nanmin(data_noinf) - self.normalize.vmax = np.nanmax(data_noinf) + if "vmin" not in kwargs: + vmin = np.nanmin(data_noinf) + else: + vmin = float(kwargs["vmin"]) + if "vmax" not in kwargs: + vmax = np.nanmax(data_noinf) + else: + vmax = float(kwargs["vmax"]) + if isinstance(self.normalize, CenteredNorm): + vcenter = self.normalize.vcenter + diff_vmin = vmin - vcenter + diff_vmax = vmax - vcenter + max_abs_diff = max(abs(diff_vmin), abs(diff_vmax)) + vmin = vcenter - max_abs_diff + vmax = vcenter + max_abs_diff + if "vmin" in kwargs and "vmax" in kwargs: + warnings.warn( + f"You shouldn't specify both 'vmin' and 'vmax' when using CenteredNorm. 'vmin' and 'vmax' must be symmetric around 'vcenter' and are thus inferred from a single value. Using: {vmin=}, {vcenter=}, {vmax=}." + ) + self.normalize.vmin = vmin + self.normalize.vmax = vmax return self.colormap(self.normalize(data), bytes=True) def __repr__(self): diff --git a/tensorhue/viz.py b/tensorhue/viz.py index 5d38c14..888904c 100644 --- a/tensorhue/viz.py +++ b/tensorhue/viz.py @@ -8,20 +8,20 @@ from tensorhue.connectors._numpy import NumpyArrayWrapper -def viz(tensor, *args, **kwargs): +def viz(tensor, **kwargs): if isinstance(tensor, np.ndarray): tensor = NumpyArrayWrapper(tensor) - tensor.viz(*args, **kwargs) # pylint: disable=no-member + tensor.viz(**kwargs) # pylint: disable=no-member else: try: - tensor.viz(*args, **kwargs) + tensor.viz(**kwargs) except Exception as e: raise NotImplementedError( - f"TensorHue does not support type {type(tensor)}. Raise an issue if you need to visualize them. Alternatively, check if you imported tensorhue *after* your other library." + f"TensorHue currently does not support type {type(tensor)}. Please raise an issue if you want to visualize them. Alternatively, check if you imported tensorhue *after* your other library." ) from e -def _viz(self, colorscheme: ColorScheme = None, legend: bool = True, scale: int = 1): +def _viz(self, colorscheme: ColorScheme = None, legend: bool = True, scale: int = 1, **kwargs): """ Prints a tensor using colored Unicode art representation. @@ -45,12 +45,12 @@ def _viz(self, colorscheme: ColorScheme = None, legend: bool = True, scale: int self = self[np.newaxis, :] elif ndim > 2: raise NotImplementedError( - "Visualization for tensors with more than 2 dimensions is under development. Please slice them for now." + "Visualization of tensors with more than 2 dimensions is under development. Please slice them for now." ) self = np.repeat(np.repeat(self, scale, axis=1), scale, axis=0) - result_lines = _viz_2d(self, colorscheme) + result_lines = _viz_2d(self, colorscheme, **kwargs) if legend: result_lines.append(f"[italic]shape = {shape}[/]") @@ -59,7 +59,7 @@ def _viz(self, colorscheme: ColorScheme = None, legend: bool = True, scale: int c.print("\n".join(result_lines)) -def _viz_2d(array_2d: np.ndarray, colorscheme: ColorScheme = None) -> list[str]: +def _viz_2d(array_2d: np.ndarray, colorscheme: ColorScheme = None, **kwargs) -> list[str]: """ Constructs a list of rich-compatible strings out of a 2D numpy array. @@ -85,7 +85,7 @@ def _viz_2d(array_2d: np.ndarray, colorscheme: ColorScheme = None) -> list[str]: slice_right = colors_right = False if colorscheme is not None: - colors_left = colorscheme(array_2d[:, :slice_left])[..., :3] + colors_left = colorscheme(array_2d[:, :slice_left], **kwargs)[..., :3] else: assert ( array_2d.ndim == 3 and array_2d.shape[-1] == 3 diff --git a/tests/test_colors.py b/tests/test_colors.py index e9d6323..e717a09 100644 --- a/tests/test_colors.py +++ b/tests/test_colors.py @@ -1,6 +1,6 @@ from rich.color_triplet import ColorTriplet import numpy as np -from matplotlib.colors import Colormap +from matplotlib.colors import Colormap, CenteredNorm from matplotlib import colormaps from tensorhue.colors import ColorScheme, COLORS @@ -39,3 +39,52 @@ def test_ColorScheme(): bool_array = np.array([True, False]) assert np.array_equal(cs(bool_array), np.array([cs.true_color, cs.false_color])) + + +def test_vmin_vmax(): + cs = ColorScheme(colormap=colormaps["magma"]) + + values1 = np.array([-0.5, 0.0, 0.5, 0.75]) + + result1 = cs(values1) + assert np.array_equal( + result1, + np.array([[0, 0, 3, 255], [140, 41, 128, 255], [253, 159, 108, 255], [251, 252, 191, 255]], dtype=np.uint8), + ) + + result2 = cs(values1, vmin=-0.5) + assert np.array_equal(result1, result2) + + result3 = cs(values1, vmax=0.75) + assert np.array_equal(result1, result3) + + result4 = cs(values1, vmin=-0.5, vmax=0.75) + assert np.array_equal(result1, result4) + + result5 = cs(values1, vmin=-1) + assert np.array_equal( + result5, + np.array([[94, 23, 127, 255], [211, 66, 109, 255], [254, 187, 128, 255], [251, 252, 191, 255]], dtype=np.uint8), + ) + + result6 = cs(values1, vmax=0.4) + assert np.array_equal( + result6, + np.array([[0, 0, 3, 255], [205, 63, 112, 255], [255, 255, 255, 255], [255, 255, 255, 255]], dtype=np.uint8), + ) + + cs = ColorScheme(colormap=colormaps["bwr"], normalize=CenteredNorm()) + + result7 = cs(values1) + assert np.array_equal( + result7, + np.array([[84, 84, 255, 255], [255, 254, 254, 255], [255, 84, 84, 255], [255, 0, 0, 255]], dtype=np.uint8), + ) + + result8 = cs(values1, vmin=-1) + assert np.array_equal( + result8, + np.array( + [[128, 128, 255, 255], [255, 254, 254, 255], [255, 126, 126, 255], [255, 62, 62, 255]], dtype=np.uint8 + ), + ) From e362c0397b3e34ca787ba228b01252385e550ffc Mon Sep 17 00:00:00 2001 From: Korbinian Koch Date: Wed, 7 Aug 2024 15:23:22 +0200 Subject: [PATCH 3/5] update README --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 418c300..0153bba 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ img.viz() ✅ ```
- image visualization + image visualization
By default, images get downscaled to the size of your terminal, but you can make them even smaller if you want: @@ -120,5 +120,7 @@ conf_matrix.viz(vmin=0, vmax=1, scale=3) ```
- confusion matrix + confusion matrix
+ +The `scale` parameter scales up the 'pixels' of the tensor so that small tensors are easier to view. From c704014b6e032b18d7378509f675250139bc3a98 Mon Sep 17 00:00:00 2001 From: Korbinian Koch Date: Wed, 7 Aug 2024 15:30:17 +0200 Subject: [PATCH 4/5] add **kwargs to docstring --- tensorhue/viz.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tensorhue/viz.py b/tensorhue/viz.py index 888904c..c98323c 100644 --- a/tensorhue/viz.py +++ b/tensorhue/viz.py @@ -30,6 +30,7 @@ def _viz(self, colorscheme: ColorScheme = None, legend: bool = True, scale: int Defaults to None, which means the global default color scheme is used. legend (bool, optional): Whether or not to include legend information (like the shape) scale (int, optional): Scales the size of the entire tensor up, making the unicode 'pixels' larger. + **kwargs: Additional keyword arguments that are passed to the underlying viz function (vmin or vmax) """ if not isinstance(scale, int): raise ValueError("scale must be an integer.") @@ -66,6 +67,7 @@ def _viz_2d(array_2d: np.ndarray, colorscheme: ColorScheme = None, **kwargs) -> Args: array_2d (np.ndarray): The 2-dimensional numpy array (or 3-dimensional if the values are already RGB). colorscheme (ColorScheme): The color scheme to use. If None, the array must be 3-dimensional (already RGB values). + **kwargs: Additional keyword arguments that are passed to the underlying viz function (vmin or vmax) """ terminal_width = get_terminal_size().columns shape = array_2d.shape From d054269b7b6ee8c8ed033a96fed28e51f98f9a86 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <10285347722+github-actions[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 13:35:00 +0000 Subject: [PATCH 5/5] gh-actions[bot]: update code coverage badge --- coverage-badge.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coverage-badge.svg b/coverage-badge.svg index 8a077e7..9a7f398 100644 --- a/coverage-badge.svg +++ b/coverage-badge.svg @@ -1 +1 @@ -coverage: 86.76%coverage86.76% \ No newline at end of file +coverage: 87.15%coverage87.15% \ No newline at end of file