Source code for thelper.viz
"""Visualization package.
In contrast with :mod:`thelper.draw`, this package regroups utilities and tools used to create
visualizations that can be used to debug and understand the behavior of models. For example, it
contains a t-SNE module that can create a projection of high-dimensional embeddings created by
a model, and different modules to visualize the image regions that cause certain activations
inside a model. All these techniques are used to create logs and/or images which in turn can be
displayed using the :mod:`thelper.draw` module.
"""
import logging
from typing import Any, AnyStr # noqa: F401
import thelper.typedefs # noqa: F401
import thelper.viz.tsne # noqa: F401
import thelper.viz.umap # noqa: F401
logger = logging.getLogger("thelper.viz")
supported_types = ["tsne", "umap"] # more will be added once properly tested
warned_missing_get_embedding = False
[docs]def visualize(model, # type: thelper.typedefs.ModelType
task, # type: thelper.typedefs.TaskType
loader, # type: thelper.typedefs.LoaderType
viz_type, # type: AnyStr
**kwargs
): # type: (...) -> Any
"""Dispatches a visualization call to the proper package module."""
assert viz_type in supported_types, f"unsupported visualization type '{viz_type}'"
if viz_type == "tsne":
return thelper.viz.tsne.visualize(model, task, loader, **kwargs)
elif viz_type == "umap":
return thelper.viz.umap.visualize(model, task, loader, **kwargs)