diff --git a/develop/_modules/openvino_xai/explainer/explanation.html b/develop/_modules/openvino_xai/explainer/explanation.html index 7a36bd4b..278d1f4e 100644 --- a/develop/_modules/openvino_xai/explainer/explanation.html +++ b/develop/_modules/openvino_xai/explainer/explanation.html @@ -404,8 +404,10 @@ <h1>Source code for openvino_xai.explainer.explanation</h1><div class="highlight <span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Dict</span><span class="p">,</span> <span class="n">List</span> <span class="kn">import</span> <span class="nn">cv2</span> +<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span> <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> +<span class="kn">from</span> <span class="nn">openvino_xai.common.utils</span> <span class="kn">import</span> <span class="n">logger</span> <span class="kn">from</span> <span class="nn">openvino_xai.explainer.utils</span> <span class="kn">import</span> <span class="p">(</span> <span class="n">convert_targets_to_numpy</span><span class="p">,</span> <span class="n">explains_all</span><span class="p">,</span> @@ -549,7 +551,98 @@ <h1>Source code for openvino_xai.explainer.explanation</h1><div class="highlight <span class="n">target_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">cls_idx</span><span class="p">)</span> <span class="n">image_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">save_name</span><span class="si">}</span><span class="s2">_target_</span><span class="si">{</span><span class="n">target_name</span><span class="si">}</span><span class="s2">.jpg"</span> <span class="k">if</span> <span class="n">save_name</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"target_</span><span class="si">{</span><span class="n">target_name</span><span class="si">}</span><span class="s2">.jpg"</span> <span class="n">cv2</span><span class="o">.</span><span class="n">imwrite</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">dir_path</span><span class="p">,</span> <span class="n">image_name</span><span class="p">),</span> <span class="n">img</span><span class="o">=</span><span class="n">map_to_save</span><span class="p">)</span></div> -</div> + + +<div class="viewcode-block" id="Explanation.plot"> +<a class="viewcode-back" href="../../../api-manual.html#openvino_xai.explainer.Explanation.plot">[docs]</a> + <span class="k">def</span> <span class="nf">plot</span><span class="p">(</span> + <span class="bp">self</span><span class="p">,</span> + <span class="n">targets</span><span class="p">:</span> <span class="n">np</span><span class="o">.</span><span class="n">ndarray</span> <span class="o">|</span> <span class="n">List</span><span class="p">[</span><span class="nb">int</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> + <span class="n">backend</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"matplotlib"</span><span class="p">,</span> + <span class="n">max_num_plots</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">24</span><span class="p">,</span> + <span class="n">num_columns</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">4</span><span class="p">,</span> + <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +<span class="w"> </span><span class="sd">"""</span> +<span class="sd"> Plots saliency maps using the specified backend.</span> + +<span class="sd"> This function plots available saliency maps using the specified backend. Targets to plot</span> +<span class="sd"> can be specified by passing a list of target class indices or names. If a provided class is</span> +<span class="sd"> not available among the saliency maps, it is omitted.</span> + +<span class="sd"> Args:</span> +<span class="sd"> targets (np.ndarray | List[int | str] | None): A list or array of target class indices or names to plot.</span> +<span class="sd"> By default, it's None, and all available saliency maps are plotted.</span> +<span class="sd"> backend (str): The plotting backend to use. Can be either 'matplotlib' (recommended for Jupyter)</span> +<span class="sd"> or 'cv' (recommended for Python scripts). Default is 'matplotlib'.</span> +<span class="sd"> max_num_plots (int): Max number of images to plot. Default is 24 to avoid memory issues.</span> +<span class="sd"> num_columns (int): Number of columns in the saliency maps visualization grid for the matplotlib backend.</span> +<span class="sd"> """</span> + + <span class="k">if</span> <span class="n">targets</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">explains_all</span><span class="p">(</span><span class="n">targets</span><span class="p">):</span> + <span class="n">checked_targets</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">targets</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">target_indices</span> <span class="o">=</span> <span class="n">get_target_indices</span><span class="p">(</span><span class="n">targets</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">label_names</span><span class="p">)</span> + <span class="n">checked_targets</span> <span class="o">=</span> <span class="p">[]</span> + <span class="k">for</span> <span class="n">target_index</span> <span class="ow">in</span> <span class="n">target_indices</span><span class="p">:</span> + <span class="k">if</span> <span class="n">target_index</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">saliency_map</span><span class="p">:</span> + <span class="n">checked_targets</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">target_index</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Provided class index </span><span class="si">{</span><span class="n">target_index</span><span class="si">}</span><span class="s2"> is not available among saliency maps."</span><span class="p">)</span> + + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">checked_targets</span><span class="p">)</span> <span class="o">></span> <span class="n">max_num_plots</span><span class="p">:</span> + <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span> + <span class="sa">f</span><span class="s2">"Decrease the number of plotted saliency maps from </span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">checked_targets</span><span class="p">)</span><span class="si">}</span><span class="s2"> to </span><span class="si">{</span><span class="n">max_num_plots</span><span class="si">}</span><span class="s2">"</span> + <span class="s2">" to avoid the memory issue. To avoid this, increase the 'max_num_plots' argument."</span> + <span class="p">)</span> + <span class="n">checked_targets</span> <span class="o">=</span> <span class="n">checked_targets</span><span class="p">[:</span><span class="n">max_num_plots</span><span class="p">]</span> + + <span class="k">if</span> <span class="n">backend</span> <span class="o">==</span> <span class="s2">"matplotlib"</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_plot_matplotlib</span><span class="p">(</span><span class="n">checked_targets</span><span class="p">,</span> <span class="n">num_columns</span><span class="p">)</span> + <span class="k">elif</span> <span class="n">backend</span> <span class="o">==</span> <span class="s2">"cv"</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_plot_cv</span><span class="p">(</span><span class="n">checked_targets</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown backend </span><span class="si">{</span><span class="n">backend</span><span class="si">}</span><span class="s2">. Use 'matplotlib' or 'cv'."</span><span class="p">)</span></div> + + + <span class="k">def</span> <span class="nf">_plot_matplotlib</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">checked_targets</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span> <span class="o">|</span> <span class="nb">str</span><span class="p">],</span> <span class="n">num_cols</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +<span class="w"> </span><span class="sd">"""Plots saliency maps using matplotlib."""</span> + <span class="n">num_rows</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">ceil</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">checked_targets</span><span class="p">)</span> <span class="o">/</span> <span class="n">num_cols</span><span class="p">))</span> + <span class="n">_</span><span class="p">,</span> <span class="n">axes</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">num_rows</span><span class="p">,</span> <span class="n">num_cols</span><span class="p">,</span> <span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">5</span> <span class="o">*</span> <span class="n">num_cols</span><span class="p">,</span> <span class="mi">6</span> <span class="o">*</span> <span class="n">num_rows</span><span class="p">))</span> + <span class="n">axes</span> <span class="o">=</span> <span class="n">axes</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span> + + <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">target_index</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">checked_targets</span><span class="p">):</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">label_names</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target_index</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">int64</span><span class="p">):</span> + <span class="n">label_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">label_names</span><span class="p">[</span><span class="n">target_index</span><span class="p">]</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">target_index</span><span class="si">}</span><span class="s2">)"</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">label_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">target_index</span><span class="p">)</span> + + <span class="n">map_to_plot</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">saliency_map</span><span class="p">[</span><span class="n">target_index</span><span class="p">]</span> + + <span class="n">axes</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">map_to_plot</span><span class="p">)</span> + <span class="n">axes</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">axis</span><span class="p">(</span><span class="s2">"off"</span><span class="p">)</span> <span class="c1"># Hide the axis</span> + <span class="n">axes</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Class </span><span class="si">{</span><span class="n">label_name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> + + <span class="c1"># Hide remaining axes</span> + <span class="k">for</span> <span class="n">ax</span> <span class="ow">in</span> <span class="n">axes</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">checked_targets</span><span class="p">)</span> <span class="p">:]:</span> + <span class="n">ax</span><span class="o">.</span><span class="n">set_visible</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span> + + <span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span> + <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span> + + <span class="k">def</span> <span class="nf">_plot_cv</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">checked_targets</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span> <span class="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +<span class="w"> </span><span class="sd">"""Plots saliency maps using OpenCV."""</span> + <span class="k">for</span> <span class="n">target_index</span> <span class="ow">in</span> <span class="n">checked_targets</span><span class="p">:</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">label_names</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target_index</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">int64</span><span class="p">):</span> + <span class="n">label_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">label_names</span><span class="p">[</span><span class="n">target_index</span><span class="p">]</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">target_index</span><span class="si">}</span><span class="s2">)"</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">label_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">target_index</span><span class="p">)</span> + + <span class="n">map_to_plot</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">saliency_map</span><span class="p">[</span><span class="n">target_index</span><span class="p">]</span> + <span class="n">map_to_plot</span> <span class="o">=</span> <span class="n">cv2</span><span class="o">.</span><span class="n">cvtColor</span><span class="p">(</span><span class="n">map_to_plot</span><span class="p">,</span> <span class="n">cv2</span><span class="o">.</span><span class="n">COLOR_BGR2RGB</span><span class="p">)</span> + + <span class="n">cv2</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Class </span><span class="si">{</span><span class="n">label_name</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> <span class="n">map_to_plot</span><span class="p">)</span> + <span class="n">cv2</span><span class="o">.</span><span class="n">waitKey</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> + <span class="n">cv2</span><span class="o">.</span><span class="n">destroyAllWindows</span><span class="p">()</span></div> diff --git a/develop/_sources/user-guide.md.txt b/develop/_sources/user-guide.md.txt index 93ee4cf8..23db8cf4 100644 --- a/develop/_sources/user-guide.md.txt +++ b/develop/_sources/user-guide.md.txt @@ -13,12 +13,16 @@ Content: - [OpenVINO™ Explainable AI Toolkit User Guide](#openvino-explainable-ai-toolkit-user-guide) - [OpenVINO XAI Architecture](#openvino-xai-architecture) - [`Explainer`: the main interface to XAI algorithms](#explainer-the-main-interface-to-xai-algorithms) + - [Create Explainer for OpenVINO Model instance](#create-explainer-for-openvino-model-instance) + - [Create Explainer from OpenVINO IR file](#create-explainer-from-openvino-ir-file) + - [Create Explainer from ONNX model file](#create-explainer-from-onnx-model-file) - [Basic usage: Auto mode](#basic-usage-auto-mode) - [Running without `preprocess_fn`](#running-without-preprocess_fn) - [Specifying `preprocess_fn`](#specifying-preprocess_fn) - [White-Box mode](#white-box-mode) - [Black-Box mode](#black-box-mode) - [XAI insertion (white-box usage)](#xai-insertion-white-box-usage) + - [Plot saliency maps](#plot-saliency-maps) - [Example scripts](#example-scripts) @@ -97,12 +101,12 @@ Here's the example how we can avoid passing `preprocess_fn` by preprocessing dat import cv2 import numpy as np import openvino.runtime as ov -from openvino.runtime.utils.data_helpers.wrappers import OVDict +from from typing import Mapping import openvino_xai as xai -def postprocess_fn(x: OVDict): +def postprocess_fn(x: Mapping): # Implementing our own post-process function based on the model's implementation # Return "logits" model output return x["logits"] @@ -143,7 +147,7 @@ explanation.save("output_path", "name") import cv2 import numpy as np import openvino.runtime as ov -from openvino.runtime.utils.data_helpers.wrappers import OVDict +from typing import Mapping import openvino_xai as xai @@ -154,7 +158,7 @@ def preprocess_fn(x: np.ndarray) -> np.ndarray: x = np.expand_dims(x, 0) return x -def postprocess_fn(x: OVDict): +def postprocess_fn(x: Mapping): # Implementing our own post-process function based on the model's implementation # Return "logits" model output return x["logits"] @@ -327,6 +331,65 @@ model_xai = xai.insert_xai( # ***** Downstream task: user's code that infers model_xai and picks 'saliency_map' output ***** ``` +## Plot saliency maps + +To visualize saliency maps, use the `explanation.plot` function. + +The `matplotlib` backend is more convenient for plotting saliency maps in Jupyter notebooks, as it uses the Matplotlib library. By default it generates the grid with 4 images per row (can be agjusted by `num_collumns` parameter). + +The `cv` backend is better for visualization in Python scripts, as it opens extra windows to display the generated saliency maps. + +```python +import cv2 +import numpy as np +import openvino.runtime as ov +import openvino_xai as xai + +def preprocess_fn(image: np.ndarray) -> np.ndarray: + """Preprocess the input image.""" + resized_image = cv2.resize(src=image, dsize=(224, 224)) + expanded_image = np.expand_dims(resized_image, 0) + return expanded_image + +# Create ov.Model +MODEL_PATH = "path/to/model.xml" +model = ov.Core().read_model(MODEL_PATH) # type: ov.Model + +# The Explainer object will prepare and load the model once in the beginning +explainer = xai.Explainer( + model, + task=xai.Task.CLASSIFICATION, + preprocess_fn=preprocess_fn, +) + +voc_labels = [ + 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', + 'dog', 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor' +] + +# Generate and process saliency maps (as many as required, sequentially) +image = cv2.imread("path/to/image.jpg") + +# Run explanation +explanation = explainer( + image, + explain_mode=ExplainMode.WHITEBOX, + label_names=voc_labels, + target_explain_labels=[7, 11], # ['cat', 'dog'] also possible as target classes to explain +) + +# Use matplotlib (recommended for Jupyter) - default backend +explanation.plot() # plot all saliency map +explanation.plot(targets=[7], backend="matplotlib") +explanation.plot(targets=["cat"], backend="matplotlib") +# Plots a grid with 5 images per row +explanation.plot(num_columns=5, backend="matplotlib") + +# Use OpenCV (recommended for Python) - will open new windows with saliency maps +explanation.plot(backend="cv") # plot all saliency map +explanation.plot(targets=[7], backend="cv") +explanation.plot(targets=["cat"], backend="cv") +``` ## Example scripts diff --git a/develop/api-manual.html b/develop/api-manual.html index 90a219d8..7add6137 100644 --- a/develop/api-manual.html +++ b/develop/api-manual.html @@ -530,7 +530,7 @@ <h2>Explanation<a class="headerlink" href="#explanation" title="Link to this hea </dl> <dl class="py method"> <dt class="sig sig-object py" id="openvino_xai.explainer.Explainer.__call__"> -<span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">targets</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.12)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">-1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">original_input_image</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label_names</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.12)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_size</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Tuple" title="(in Python v3.12)"><span class="pre">Tuple</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scaling</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resize</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">colormap</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">overlay</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">overlay_weight</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.12)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#openvino_xai.explainer.Explanation" title="openvino_xai.explainer.explanation.Explanation"><span class="pre">Explanation</span></a></span></span><a class="reference internal" href="_modules/openvino_xai/explainer/explainer.html#Explainer.__call__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#openvino_xai.explainer.Explainer.__call__" title="Link to this definition">#</a></dt> +<span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">targets</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.12)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">-1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">original_input_image</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label_names</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.12)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_size</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Tuple" title="(in Python v3.12)"><span class="pre">Tuple</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scaling</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resize</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">colormap</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">overlay</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">overlay_weight</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.12)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#openvino_xai.explainer.Explanation" title="openvino_xai.explainer.explanation.Explanation"><span class="pre">Explanation</span></a></span></span><a class="reference internal" href="_modules/openvino_xai/explainer/explainer.html#Explainer.__call__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#openvino_xai.explainer.Explainer.__call__" title="Link to this definition">#</a></dt> <dd><p>Call self as a function.</p> </dd></dl> @@ -550,7 +550,7 @@ <h2>Explanation<a class="headerlink" href="#explanation" title="Link to this hea <dl class="py method"> <dt class="sig sig-object py" id="openvino_xai.explainer.Explainer.explain"> -<span class="sig-name descname"><span class="pre">explain</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">targets</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.12)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">-1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">original_input_image</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label_names</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.12)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_size</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Tuple" title="(in Python v3.12)"><span class="pre">Tuple</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scaling</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resize</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">colormap</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">overlay</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">overlay_weight</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.12)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#openvino_xai.explainer.Explanation" title="openvino_xai.explainer.explanation.Explanation"><span class="pre">Explanation</span></a></span></span><a class="reference internal" href="_modules/openvino_xai/explainer/explainer.html#Explainer.explain"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#openvino_xai.explainer.Explainer.explain" title="Link to this definition">#</a></dt> +<span class="sig-name descname"><span class="pre">explain</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">targets</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.12)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">-1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">original_input_image</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label_names</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.12)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_size</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Tuple" title="(in Python v3.12)"><span class="pre">Tuple</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scaling</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resize</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">colormap</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">overlay</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.12)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">overlay_weight</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.12)"><span class="pre">float</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#openvino_xai.explainer.Explanation" title="openvino_xai.explainer.explanation.Explanation"><span class="pre">Explanation</span></a></span></span><a class="reference internal" href="_modules/openvino_xai/explainer/explainer.html#Explainer.explain"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#openvino_xai.explainer.Explainer.explain" title="Link to this definition">#</a></dt> <dd><p>Interface that generates explanation result.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> @@ -582,7 +582,7 @@ <h2>Explanation<a class="headerlink" href="#explanation" title="Link to this hea <dl class="py class"> <dt class="sig sig-object py" id="openvino_xai.explainer.Explanation"> -<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">openvino_xai.explainer.</span></span><span class="sig-name descname"><span class="pre">Explanation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">saliency_map</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.12)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">targets</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.12)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">label_names</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.12)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/openvino_xai/explainer/explanation.html#Explanation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#openvino_xai.explainer.Explanation" title="Link to this definition">#</a></dt> +<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">openvino_xai.explainer.</span></span><span class="sig-name descname"><span class="pre">Explanation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">saliency_map</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.12)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">targets</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.12)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">label_names</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.12)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/openvino_xai/explainer/explanation.html#Explanation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#openvino_xai.explainer.Explanation" title="Link to this definition">#</a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p> <p>Explanation selects target saliency maps, holds it and its layout.</p> <dl class="field-list simple"> @@ -595,6 +595,26 @@ <h2>Explanation<a class="headerlink" href="#explanation" title="Link to this hea </ul> </dd> </dl> +<dl class="py method"> +<dt class="sig sig-object py" id="openvino_xai.explainer.Explanation.plot"> +<span class="sig-name descname"><span class="pre">plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">targets</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray" title="(in NumPy v2.0)"><span class="pre">ndarray</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.12)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">backend</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'matplotlib'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_num_plots</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">24</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num_columns</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><span class="pre">int</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">4</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span></span><a class="reference internal" href="_modules/openvino_xai/explainer/explanation.html#Explanation.plot"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#openvino_xai.explainer.Explanation.plot" title="Link to this definition">#</a></dt> +<dd><p>Plots saliency maps using the specified backend.</p> +<p>This function plots available saliency maps using the specified backend. Targets to plot +can be specified by passing a list of target class indices or names. If a provided class is +not available among the saliency maps, it is omitted.</p> +<dl> +<dt>Args:</dt><dd><dl class="simple"> +<dt>targets (np.ndarray | List[int | str] | None): A list or array of target class indices or names to plot.</dt><dd><p>By default, it’s None, and all available saliency maps are plotted.</p> +</dd> +<dt>backend (str): The plotting backend to use. Can be either ‘matplotlib’ (recommended for Jupyter)</dt><dd><p>or ‘cv’ (recommended for Python scripts). Default is ‘matplotlib’.</p> +</dd> +</dl> +<p>max_num_plots (int): Max number of images to plot. Default is 24 to avoid memory issues. +num_columns (int): Number of columns in the saliency maps visualization grid for the matplotlib backend.</p> +</dd> +</dl> +</dd></dl> + <dl class="py method"> <dt class="sig sig-object py" id="openvino_xai.explainer.Explanation.save"> <span class="sig-name descname"><span class="pre">save</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dir_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/pathlib.html#pathlib.Path" title="(in Python v3.12)"><span class="pre">Path</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><span class="pre">str</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.12)"><span class="pre">None</span></a></span></span><a class="reference internal" href="_modules/openvino_xai/explainer/explanation.html#Explanation.save"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#openvino_xai.explainer.Explanation.save" title="Link to this definition">#</a></dt> @@ -1009,6 +1029,7 @@ <h2>Methods<a class="headerlink" href="#methods" title="Link to this heading">#< </ul> </li> <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#openvino_xai.explainer.Explanation"><code class="docutils literal notranslate"><span class="pre">Explanation</span></code></a><ul class="nav section-nav flex-column"> +<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#openvino_xai.explainer.Explanation.plot"><code class="docutils literal notranslate"><span class="pre">Explanation.plot()</span></code></a></li> <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#openvino_xai.explainer.Explanation.save"><code class="docutils literal notranslate"><span class="pre">Explanation.save()</span></code></a></li> <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#openvino_xai.explainer.Explanation.saliency_map"><code class="docutils literal notranslate"><span class="pre">Explanation.saliency_map</span></code></a></li> <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#openvino_xai.explainer.Explanation.shape"><code class="docutils literal notranslate"><span class="pre">Explanation.shape</span></code></a></li> diff --git a/develop/genindex.html b/develop/genindex.html index 8681f19e..67766ebb 100644 --- a/develop/genindex.html +++ b/develop/genindex.html @@ -570,6 +570,10 @@ <h2 id="O">O</h2> <h2 id="P">P</h2> <table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="api-manual.html#openvino_xai.explainer.Explanation.plot">plot() (openvino_xai.explainer.Explanation method)</a> +</li> + </ul></td> <td style="width: 33%; vertical-align: top;"><ul> <li><a href="api-manual.html#openvino_xai.methods.WhiteBoxMethod.prepare_model">prepare_model() (openvino_xai.methods.WhiteBoxMethod method)</a> </li> diff --git a/develop/index.html b/develop/index.html index 1d885ce5..73c1b5f8 100644 --- a/develop/index.html +++ b/develop/index.html @@ -392,6 +392,7 @@ <h1>Welcome to OpenVINO™ Explainable AI Toolkit’s documentation!<a class="he <li class="toctree-l2"><a class="reference internal" href="user-guide.html#white-box-mode">White-Box mode</a></li> <li class="toctree-l2"><a class="reference internal" href="user-guide.html#black-box-mode">Black-Box mode</a></li> <li class="toctree-l2"><a class="reference internal" href="user-guide.html#xai-insertion-white-box-usage">XAI insertion (white-box usage)</a></li> +<li class="toctree-l2"><a class="reference internal" href="user-guide.html#plot-saliency-maps">Plot saliency maps</a></li> <li class="toctree-l2"><a class="reference internal" href="user-guide.html#example-scripts">Example scripts</a></li> </ul> </li> diff --git a/develop/objects.inv b/develop/objects.inv index 1e24d9cd..682051d2 100644 Binary files a/develop/objects.inv and b/develop/objects.inv differ diff --git a/develop/searchindex.js b/develop/searchindex.js index c346609d..ebe7b824 100644 --- a/develop/searchindex.js +++ b/develop/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"1 Introduction": [[1, "introduction"]], "2 Automating Code Formatting": [[1, "automating-code-formatting"]], "3 Python Language Rules": [[1, "python-language-rules"]], "3.1 Type Annotated Code": [[1, "type-annotated-code"]], "3.2 Avoid using mutable default arguments": [[1, "avoid-using-mutable-default-arguments"]], "4 Python Style Rules": [[1, "python-style-rules"]], "API": [[0, "api"]], "Basic usage: Auto mode": [[4, "basic-usage-auto-mode"]], "Black-Box mode": [[4, "black-box-mode"]], "Common": [[0, "common"]], "Contents:": [[3, null]], "Contributing": [[2, "contributing"]], "Create Explainer for OpenVINO Model instance": [[4, "create-explainer-for-openvino-model-instance"]], "Create Explainer from ONNX model file": [[4, "create-explainer-from-onnx-model-file"]], "Create Explainer from OpenVINO IR file": [[4, "create-explainer-from-openvino-ir-file"]], "Disclaimer": [[2, "disclaimer"]], "Example scripts": [[4, "example-scripts"]], "Explainer: the main interface to XAI algorithms": [[4, "explainer-the-main-interface-to-xai-algorithms"]], "Explanation": [[0, "explanation"]], "Features": [[2, "features"]], "Hello, OpenVINO XAI": [[2, "hello-openvino-xai"]], "Indices and tables": [[3, "indices-and-tables"]], "Installation": [[2, "installation"]], "License": [[2, "license"]], "Methods": [[0, "methods"]], "More advanced use-cases": [[2, "more-advanced-use-cases"]], "OpenVINO XAI Architecture": [[4, "openvino-xai-architecture"]], "OpenVINO-XAI Python API": [[0, null]], "OpenVINO\u2122 Explainable AI Toolkit - OpenVINO XAI": [[2, null]], "OpenVINO\u2122 Explainable AI Toolkit User Guide": [[4, null]], "Playing with the examples": [[2, "playing-with-the-examples"]], "Quick Start": [[2, "quick-start"]], "Running without preprocess_fn": [[4, "running-without-preprocess-fn"]], "Specifying preprocess_fn": [[4, "specifying-preprocess-fn"]], "Style Guide for Python Code": [[1, null]], "Supported XAI methods": [[2, "supported-xai-methods"]], "Supported explainable models": [[2, "supported-explainable-models"]], "Welcome to OpenVINO\u2122 Explainable AI Toolkit\u2019s documentation!": [[3, null]], "What\u2019s new in v1.0.0": [[2, "what-s-new-in-v1-0-0"]], "White-Box mode": [[4, "white-box-mode"]], "XAI insertion (white-box usage)": [[4, "xai-insertion-white-box-usage"]]}, "docnames": ["api-manual", "coding-guide", "getting-started", "index", "user-guide"], "envversion": {"sphinx": 63, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1}, "filenames": ["api-manual.rst", "coding-guide.md", "getting-started.md", "index.rst", "user-guide.md"], "indexentries": {"__call__() (openvino_xai.explainer.explainer method)": [[0, "openvino_xai.explainer.Explainer.__call__", false]], "__call__() (openvino_xai.explainer.visualizer method)": [[0, "openvino_xai.explainer.Visualizer.__call__", false]], "activationmap (class in openvino_xai.methods)": [[0, "openvino_xai.methods.ActivationMap", false]], "aise (class in openvino_xai.methods)": [[0, "openvino_xai.methods.AISE", false]], "colormap() (in module openvino_xai.explainer)": [[0, "openvino_xai.explainer.colormap", false]], "create_method() (openvino_xai.explainer.explainer method)": [[0, "openvino_xai.explainer.Explainer.create_method", false]], "detclassprobabilitymap (class in openvino_xai.methods)": [[0, "openvino_xai.methods.DetClassProbabilityMap", false]], "explain() (openvino_xai.explainer.explainer method)": [[0, "openvino_xai.explainer.Explainer.explain", false]], "explainer (class in openvino_xai.explainer)": [[0, "openvino_xai.explainer.Explainer", false]], "explainmode (class in openvino_xai.explainer)": [[0, "openvino_xai.explainer.ExplainMode", false]], "explanation (class in openvino_xai.explainer)": [[0, "openvino_xai.explainer.Explanation", false]], "featuremapperturbationbase (class in openvino_xai.methods)": [[0, "openvino_xai.methods.FeatureMapPerturbationBase", false]], "generate_saliency_map() (openvino_xai.methods.aise method)": [[0, "openvino_xai.methods.AISE.generate_saliency_map", false]], "generate_saliency_map() (openvino_xai.methods.rise method)": [[0, "openvino_xai.methods.RISE.generate_saliency_map", false]], "generate_saliency_map() (openvino_xai.methods.whiteboxmethod method)": [[0, "openvino_xai.methods.WhiteBoxMethod.generate_saliency_map", false]], "generate_xai_branch() (openvino_xai.methods.activationmap method)": [[0, "openvino_xai.methods.ActivationMap.generate_xai_branch", false]], "generate_xai_branch() (openvino_xai.methods.detclassprobabilitymap method)": [[0, "openvino_xai.methods.DetClassProbabilityMap.generate_xai_branch", false]], "generate_xai_branch() (openvino_xai.methods.featuremapperturbationbase method)": [[0, "openvino_xai.methods.FeatureMapPerturbationBase.generate_xai_branch", false]], "generate_xai_branch() (openvino_xai.methods.whiteboxmethod method)": [[0, "openvino_xai.methods.WhiteBoxMethod.generate_xai_branch", false]], "has_xai() (in module openvino_xai.common)": [[0, "openvino_xai.common.has_xai", false]], "insert_xai() (in module openvino_xai.api)": [[0, "openvino_xai.api.insert_xai", false]], "layout (class in openvino_xai.explainer)": [[0, "openvino_xai.explainer.Layout", false]], "method (class in openvino_xai.common)": [[0, "openvino_xai.common.Method", false]], "model_forward() (openvino_xai.explainer.explainer method)": [[0, "openvino_xai.explainer.Explainer.model_forward", false]], "module": [[0, "module-openvino_xai.api", false], [0, "module-openvino_xai.common", false], [0, "module-openvino_xai.explainer", false], [0, "module-openvino_xai.methods", false]], "openvino_xai.api": [[0, "module-openvino_xai.api", false]], "openvino_xai.common": [[0, "module-openvino_xai.common", false]], "openvino_xai.explainer": [[0, "module-openvino_xai.explainer", false]], "openvino_xai.methods": [[0, "module-openvino_xai.methods", false]], "overlay() (in module openvino_xai.explainer)": [[0, "openvino_xai.explainer.overlay", false]], "prepare_model() (openvino_xai.methods.whiteboxmethod method)": [[0, "openvino_xai.methods.WhiteBoxMethod.prepare_model", false]], "reciprocam (class in openvino_xai.methods)": [[0, "openvino_xai.methods.ReciproCAM", false]], "resize() (in module openvino_xai.explainer)": [[0, "openvino_xai.explainer.resize", false]], "rise (class in openvino_xai.methods)": [[0, "openvino_xai.methods.RISE", false]], "saliency_map (openvino_xai.explainer.explanation property)": [[0, "openvino_xai.explainer.Explanation.saliency_map", false]], "save() (openvino_xai.explainer.explanation method)": [[0, "openvino_xai.explainer.Explanation.save", false]], "scaling() (in module openvino_xai.common)": [[0, "openvino_xai.common.scaling", false]], "shape (openvino_xai.explainer.explanation property)": [[0, "openvino_xai.explainer.Explanation.shape", false]], "targets (openvino_xai.explainer.explanation property)": [[0, "openvino_xai.explainer.Explanation.targets", false]], "task (class in openvino_xai.common)": [[0, "openvino_xai.common.Task", false]], "visualize() (openvino_xai.explainer.visualizer method)": [[0, "openvino_xai.explainer.Visualizer.visualize", false]], "visualizer (class in openvino_xai.explainer)": [[0, "openvino_xai.explainer.Visualizer", false]], "vitreciprocam (class in openvino_xai.methods)": [[0, "openvino_xai.methods.ViTReciproCAM", false]], "whiteboxmethod (class in openvino_xai.methods)": [[0, "openvino_xai.methods.WhiteBoxMethod", false]]}, "objects": {"openvino_xai": [[0, 0, 0, "-", "api"], [0, 0, 0, "-", "common"], [0, 0, 0, "-", "explainer"], [0, 0, 0, "-", "methods"]], "openvino_xai.api": [[0, 1, 1, "", "insert_xai"]], "openvino_xai.common": [[0, 2, 1, "", "Method"], [0, 2, 1, "", "Task"], [0, 1, 1, "", "has_xai"], [0, 1, 1, "", "scaling"]], "openvino_xai.explainer": [[0, 2, 1, "", "ExplainMode"], [0, 2, 1, "", "Explainer"], [0, 2, 1, "", "Explanation"], [0, 2, 1, "", "Layout"], [0, 2, 1, "", "Visualizer"], [0, 1, 1, "", "colormap"], [0, 1, 1, "", "overlay"], [0, 1, 1, "", "resize"]], "openvino_xai.explainer.Explainer": [[0, 3, 1, "", "__call__"], [0, 3, 1, "", "create_method"], [0, 3, 1, "", "explain"], [0, 3, 1, "", "model_forward"]], "openvino_xai.explainer.Explanation": [[0, 4, 1, "", "saliency_map"], [0, 3, 1, "", "save"], [0, 4, 1, "", "shape"], [0, 4, 1, "", "targets"]], "openvino_xai.explainer.Visualizer": [[0, 3, 1, "", "__call__"], [0, 3, 1, "", "visualize"]], "openvino_xai.methods": [[0, 2, 1, "", "AISE"], [0, 2, 1, "", "ActivationMap"], [0, 2, 1, "", "DetClassProbabilityMap"], [0, 2, 1, "", "FeatureMapPerturbationBase"], [0, 2, 1, "", "RISE"], [0, 2, 1, "", "ReciproCAM"], [0, 2, 1, "", "ViTReciproCAM"], [0, 2, 1, "", "WhiteBoxMethod"]], "openvino_xai.methods.AISE": [[0, 3, 1, "", "generate_saliency_map"]], "openvino_xai.methods.ActivationMap": [[0, 3, 1, "", "generate_xai_branch"]], "openvino_xai.methods.DetClassProbabilityMap": [[0, 3, 1, "", "generate_xai_branch"]], "openvino_xai.methods.FeatureMapPerturbationBase": [[0, 3, 1, "", "generate_xai_branch"]], "openvino_xai.methods.RISE": [[0, 3, 1, "", "generate_saliency_map"]], "openvino_xai.methods.WhiteBoxMethod": [[0, 3, 1, "", "generate_saliency_map"], [0, 3, 1, "", "generate_xai_branch"], [0, 3, 1, "", "prepare_model"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method", "4": "py:property"}, "terms": {"": [0, 1, 4], "0": [0, 4], "07421": 0, "1": [0, 3, 4], "10": 2, "11": 4, "14": 4, "1806": 0, "2": [0, 2, 3, 4], "2024": 2, "224": [2, 4], "23": 0, "255": [0, 4], "26": 2, "29": 2, "293": 2, "3": [2, 3], "30": 2, "4": 3, "484": 1, "5": 0, "604": 1, "8": [0, 1], "A": 2, "As": 4, "At": 2, "By": [0, 2], "For": [2, 4], "If": [0, 1, 4], "In": [2, 4], "Not": 0, "The": [0, 4], "There": 4, "To": [0, 1], "With": 0, "__call__": 0, "ab": 0, "about": 4, "abov": 4, "abstract": 0, "abus": 2, "accept": 2, "access": 0, "accord": [1, 2], "activ": 2, "activationmap": [0, 2], "actual": 2, "ad": 4, "adapt": 0, "add": 0, "add_to_list": 1, "addit": [2, 4], "aeroplan": 4, "affect": 4, "after": [0, 4], "aggreg": 0, "agnost": 2, "agre": 2, "ai": 1, "ais": [0, 2, 4], "algorithm": [0, 2, 3], "all": [0, 1, 2, 4], "alreadi": [0, 4], "also": [1, 2, 4], "altern": 4, "an": [2, 4], "analysi": 2, "analyz": [2, 4], "anchor": 0, "ani": [1, 2, 4], "anim": 2, "apach": 2, "api": [2, 3, 4], "append": 1, "appli": [0, 4], "applic": 2, "appreci": 2, "approach": 4, "ar": [0, 2, 4], "architectur": [2, 3], "area": 2, "arg": 0, "argument": [2, 4], "around": 2, "arrai": 0, "arxiv": [0, 2], "asset": [2, 4], "assum": 0, "atss": 0, "augment": 2, "auto": [0, 2, 3], "autom": 3, "automat": [1, 2], "avail": 4, "avoid": [2, 4], "backbon": 4, "balanc": 0, "bandwidth": 0, "base": [0, 2, 4], "basic": [2, 3], "batch": 4, "befor": [0, 1], "beforehand": 4, "begin": 4, "behavior": 2, "below": 4, "best": 2, "bhw": 0, "bhwc": 0, "bias": 0, "bicycl": 4, "bin": 2, "bird": 4, "black": [0, 1, 2, 3], "blackbox": [0, 4], "blackboxxaimethod": 0, "block": 0, "bnhw": 0, "bnhwc": 0, "boat": 4, "bodi": 2, "bool": 0, "bottl": 4, "box": [0, 2, 3], "branch": [0, 2, 4], "bu": 4, "budget": 0, "build": 1, "built": 4, "bunch": [2, 4], "call": [0, 2, 4], "callabl": 0, "cam": 0, "can": [0, 1, 2, 4], "car": 4, "case": [1, 4], "cast_to_uint8": 0, "cat": 4, "caus": 2, "cd": 2, "cell": 0, "chair": 4, "chang": [1, 2, 4], "check": [0, 1, 2], "cheetah": 2, "cheetah_person": [2, 4], "cl": 0, "class": [0, 2, 4], "classif": [0, 2, 4], "classprobabilitymap": 2, "clone": 2, "cls_token": 0, "cnn": [0, 2, 4], "code": [2, 3, 4], "codebas": 1, "colormap": 0, "colormap_typ": 0, "com": 2, "command": 1, "commit": [1, 2], "common": 3, "compil": 0, "complex": 2, "complic": 2, "compris": 1, "comput": [0, 2, 4], "con": 4, "configur": [0, 1], "consist": 1, "contain": [0, 2], "content": 4, "contribut": 3, "convent": 1, "convers": 2, "convert": 2, "convolut": 4, "copyright": 2, "core": [2, 4], "correspond": [2, 4], "could": 2, "count": 0, "cow": 4, "cpu": 0, "creat": [0, 2], "create_method": 0, "current": 4, "custom": [0, 2, 4], "cv2": [2, 4], "data": [0, 2, 4], "data_help": [0, 4], "debug": 2, "decid": 2, "deep": 2, "def": [1, 4], "default": [0, 2, 4], "defin": 0, "depend": [0, 4], "describ": 0, "detail": [2, 4], "detclassprobabilitymap": 0, "detect": [0, 2], "detector": 0, "dev": 2, "develop": 2, "devic": 0, "device_nam": 0, "dict": 0, "differ": [0, 2], "dimens": 4, "dimension": 0, "diningt": 4, "dir_path": [0, 2], "direct": 0, "directli": [2, 4], "directori": [2, 4], "disabl": 1, "disclaim": 3, "dive": 2, "divers": 2, "do": [1, 2, 4], "document": [1, 2, 4], "doe": 4, "dog": 4, "domain": 2, "don": 1, "download": [2, 4], "downstream": 4, "dsize": [2, 4], "dump": 0, "dure": 4, "e": [0, 2], "easiest": 4, "edit": 2, "effcient": 0, "effect": 4, "either": 4, "embed": [0, 4], "embed_sc": [0, 4], "enabl": 2, "ensur": 1, "enum": 0, "enumer": 2, "env": 2, "environ": 2, "epsilon": 0, "error": 2, "even": 2, "exampl": 3, "exist": 2, "expand_dim": [2, 4], "expect": 2, "experiment": 2, "explain": [0, 1], "explain_method": [0, 4], "explain_mod": [0, 4], "explainmod": [0, 4], "explainresult": 0, "explan": [2, 3, 4], "expos": 2, "extra": [2, 4], "extract": 0, "fail": 4, "fals": [0, 2, 4], "fast": [2, 4], "featur": 3, "featuremapperturb": 0, "featuremapperturbationbas": 0, "feed": 2, "few": [2, 4], "file": [0, 1, 2], "fill": 0, "final_norm": 0, "finction": 0, "find": 2, "first": 4, "flag": 0, "flexibl": 4, "float": 0, "focus": 2, "follow": [0, 1, 2, 4], "format": [3, 4], "forward": [0, 4], "found": [1, 4], "from": [0, 2], "full": 2, "fulli": 2, "func": 1, "function": [0, 2, 4], "g": 0, "gaussian": 0, "genai": 2, "gener": [0, 2, 4], "generate_saliency_map": 0, "generate_xai_branch": 0, "get": [0, 2, 3], "git": 2, "github": 2, "give": [1, 2], "given": 2, "global": 2, "graph": [0, 4], "grayscal": 0, "guid": [2, 3], "guidelin": 1, "ha": [0, 4], "has_xai": 0, "have": [0, 2], "head": [0, 2], "help": [2, 4], "here": [0, 4], "higher": 2, "highlight": 2, "hint": 1, "histori": 2, "hold": 0, "hood": 4, "hors": 4, "how": 4, "howev": 4, "http": [0, 2], "human": 2, "hundr": 4, "i": [0, 1, 2, 4], "id": 1, "ident": 0, "identifi": 4, "identitypreprocessfn": 0, "ie_api": 0, "imag": [0, 2, 4], "imagin": 2, "implement": [0, 4], "import": [1, 2, 4], "imread": [2, 4], "includ": 2, "increment": 2, "index": [0, 3], "indic": [0, 2, 4], "infer": [0, 2, 4], "inner": 4, "input": [0, 2, 4], "input_imag": 0, "insert": [0, 2, 3], "insert_xai": [0, 2, 4], "instal": 3, "instead": 4, "int": [0, 1], "integ": 0, "intel": 2, "intend": 2, "interest": 2, "interfac": [0, 2, 3], "intermedi": [2, 3, 4], "internation": 2, "introduct": 3, "involv": 4, "ir": [0, 2, 3], "isort": 1, "issu": 2, "item": 1, "iter": 0, "its": 0, "jpg": [2, 4], "k": 0, "kernel": 0, "kernel_width": 0, "know": 2, "known": 2, "kwarg": 0, "label": [0, 2, 4], "label_nam": [0, 2, 4], "languag": 3, "larg": 0, "last": [0, 4], "last_conv_node_nam": 4, "later": 0, "layer": [0, 4], "layout": 0, "learn": 4, "let": 2, "librari": 2, "licens": 3, "like": [1, 2, 4], "limit": 2, "line": 2, "link": [0, 2], "list": [0, 1], "llm": 2, "load": [0, 2, 4], "load_model": 0, "local": 0, "locally_bias": 0, "log": 2, "logic": 0, "logit": 4, "look": [2, 4], "low": 0, "m": 2, "machin": 4, "mai": 2, "main": [2, 3], "maintain": 1, "major": 4, "make": 4, "manag": 0, "mandatori": 1, "mani": 4, "manual": 3, "map": [0, 2, 4], "mask": 0, "mean": 0, "measur": 4, "mention": 4, "method": [3, 4], "methodbas": 0, "might": 2, "mlc_mobilenetv3_large_voc": [2, 4], "mobilenet_v3": 2, "mode": [0, 2, 3], "model": 0, "model_forward": 0, "model_xai": [0, 4], "modif": 4, "modifi": 0, "modul": 3, "moment": 2, "more": 4, "mosaic": 0, "most": 2, "motorbik": 4, "multipl": [0, 2], "multiple_maps_per_image_color": 0, "multiple_maps_per_image_grai": 0, "mypi": 1, "name": [0, 2, 4], "ndarrai": [0, 2, 4], "need": [2, 4], "negvet": 0, "node": [0, 4], "none": [0, 1], "normal": [0, 2], "note": [2, 4], "notebook": 2, "np": [0, 2, 4], "num": 1, "num_anchor": 0, "num_cel": 0, "num_iterations_per_kernel": 0, "num_mask": 0, "number": 0, "numpi": [0, 2, 4], "nutshel": 4, "o": 0, "object": [0, 2, 4], "observ": 2, "older": 2, "onc": 4, "one": [0, 4], "one_map_per_image_color": 0, "one_map_per_image_grai": 0, "onli": 2, "onnx": [0, 2], "op": 0, "open": 4, "openvino": 1, "openvino_xai": [0, 2, 4], "openvinotoolkit": 2, "oper": [0, 4], "optim": 0, "option": [0, 2, 4], "order": 0, "org": 0, "origin": [0, 2, 4], "original_input_imag": [0, 4], "otherwis": 0, "otx_model": [2, 4], "our": [2, 4], "output": [0, 2, 4], "output_path": 4, "output_s": 0, "ov": [0, 2, 4], "ov_model": 2, "ovc": 2, "ovdict": [0, 4], "over": [0, 2], "overhead": 4, "overlai": [0, 2, 4], "overlay_weight": 0, "ovxai": 2, "own": 4, "p": 0, "packag": 2, "page": 3, "paper": 0, "paramet": 0, "part": 4, "pass": [0, 2, 4], "path": [0, 2, 4], "pathlik": 0, "pep": 1, "per": [0, 2], "perform": 4, "person": 4, "perspect": 2, "perturb": 4, "pick": 4, "pip": 2, "pipelin": [2, 4], "pleas": 2, "post": [0, 2, 4], "postprocess": 0, "postprocess_fn": [0, 4], "pottedpl": 4, "pre": [0, 1, 2, 4], "predefin": 0, "predict": [0, 4], "prepar": [0, 2, 4], "prepare_model": 0, "preprocess": [0, 4], "preprocess_fn": 0, "preprocessed_imag": 4, "preset": 0, "primarili": 4, "principl": 2, "prior": 0, "pro": 4, "prob": 0, "process": [0, 2, 4], "product": 2, "project": 2, "properli": 1, "properti": 0, "provid": [2, 3, 4], "purpos": 2, "py": [2, 4], "pypi": 2, "pytest": [2, 4], "python": [2, 3, 4], "python3": 2, "pytorch": 2, "qualiti": [0, 2], "question": 2, "quick": 3, "quit": 4, "random": 0, "rang": [0, 4], "raw": 0, "re": 0, "read_model": [2, 4], "readabl": 1, "reason": 2, "recipro": 0, "reciprocam": [0, 2, 4], "recogn": 2, "recommend": 1, "refer": 2, "region": 2, "rel": 4, "releas": 2, "repositori": 2, "repres": [0, 4], "represent": [2, 3, 4], "request": 2, "requir": [0, 1, 4], "resiz": [0, 2, 4], "respect": 2, "respons": [2, 4], "result": [0, 4], "retriev": 4, "return": [0, 1, 4], "right": 2, "rise": [0, 2, 4], "rule": 3, "run": [1, 2], "run_classif": [2, 4], "runnabl": 2, "runtim": [0, 2, 4], "salienc": [0, 2, 4], "saliency_map": [0, 4], "saliency_map_s": 0, "same": 2, "sampl": 0, "save": [0, 1, 2, 4], "scale": [0, 4], "scale_output": 0, "scenario": [2, 4], "score": 0, "script": [2, 3], "search": 3, "see": 2, "seed": 0, "select": [0, 2], "self": 0, "sequenti": 4, "set": [0, 1, 2, 4], "shape": 0, "sheep": 4, "should": [1, 4], "simpl": 2, "sinc": 4, "singl": 0, "size": 0, "skin": 2, "slow": 2, "small": 4, "so": 4, "sofa": 4, "softwar": 2, "solver": 0, "solver_epsilon": 0, "some": 0, "sourc": [0, 2], "specif": [0, 1, 2, 4], "speed": 0, "src": [2, 4], "ssd": 0, "stage": 0, "start": 3, "state": 2, "step": [0, 4], "store": [2, 4], "str": [0, 1, 2], "string": 4, "style": 3, "suit": [2, 3, 4], "supplement": 1, "support": 4, "t": 1, "tab": 2, "target": [0, 2, 4], "target_explain_label": 4, "target_id": 0, "target_indic": 0, "target_lay": [0, 4], "task": [0, 2, 4], "tbd": 1, "tell": 2, "term": 2, "test": [2, 4], "test_classif": [2, 4], "thank": 2, "them": [0, 2], "therefor": 0, "therein": 2, "thi": [1, 2, 4], "those": 2, "thousand": 4, "throughout": 1, "time": [1, 2], "timm": 2, "todo": 0, "token": 0, "tool": 1, "toolkit": 1, "top": 2, "torch": 2, "tradeoff": 0, "train": 4, "transform": [0, 2], "treat": 4, "true": [0, 2, 4], "try": [2, 4], "tupl": 0, "tutori": 4, "tvmonitor": 4, "tweak": 2, "two": 4, "type": [0, 2, 4], "u": 2, "under": [2, 4], "understand": 2, "unit": 2, "unsupport": 2, "up": [0, 2], "upcom": 2, "updat": [1, 4], "us": [0, 4], "usag": [0, 3], "use_gaussian": 0, "user": [0, 2, 3], "usual": 4, "util": [0, 4], "v": 2, "valid": [2, 4], "valu": [0, 1], "vari": 4, "venv": 2, "verifi": 2, "version": 2, "via": 2, "violat": 2, "virtual": 2, "vision": 2, "visual": [0, 2, 4], "visualizationparamet": 0, "vitrecipro": 0, "vitreciprocam": [0, 2], "voc_label": 4, "wa": 4, "wai": 4, "want": 2, "warn": 2, "watch": 2, "we": [1, 2, 4], "weight": 0, "well": 2, "were": 1, "when": [0, 1], "whether": 0, "which": [0, 2, 4], "while": 2, "white": [0, 2, 3], "whitebox": [0, 4], "whiteboxmethod": 0, "who": 2, "whole": 0, "why": 2, "wide": 4, "work": [2, 4], "workaround": 2, "would": 2, "wrapper": [0, 4], "x": [0, 4], "xai": 3, "xml": [0, 2, 4], "yolox": 0, "you": [1, 2, 4], "your": [1, 2, 4]}, "titles": ["OpenVINO-XAI Python API", "Style Guide for Python Code", "OpenVINO\u2122 Explainable AI Toolkit - OpenVINO XAI", "Welcome to OpenVINO\u2122 Explainable AI Toolkit\u2019s documentation!", "OpenVINO\u2122 Explainable AI Toolkit User Guide"], "titleterms": {"": [2, 3], "0": 2, "1": 1, "2": 1, "3": 1, "4": 1, "advanc": 2, "ai": [2, 3, 4], "algorithm": 4, "annot": 1, "api": 0, "architectur": 4, "argument": 1, "auto": 4, "autom": 1, "avoid": 1, "basic": 4, "black": 4, "box": 4, "case": 2, "code": 1, "common": 0, "content": 3, "contribut": 2, "creat": 4, "default": 1, "disclaim": 2, "document": 3, "exampl": [2, 4], "explain": [2, 3, 4], "explan": 0, "featur": 2, "file": 4, "format": 1, "from": 4, "guid": [1, 4], "hello": 2, "indic": 3, "insert": 4, "instal": 2, "instanc": 4, "interfac": 4, "introduct": 1, "ir": 4, "languag": 1, "licens": 2, "main": 4, "method": [0, 2], "mode": 4, "model": [2, 4], "more": 2, "mutabl": 1, "new": 2, "onnx": 4, "openvino": [0, 2, 3, 4], "plai": 2, "preprocess_fn": 4, "python": [0, 1], "quick": 2, "rule": 1, "run": 4, "script": 4, "specifi": 4, "start": 2, "style": 1, "support": 2, "tabl": 3, "toolkit": [2, 3, 4], "type": 1, "us": [1, 2], "usag": 4, "user": 4, "v1": 2, "welcom": 3, "what": 2, "white": 4, "without": 4, "xai": [0, 2, 4]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"1 Introduction": [[1, "introduction"]], "2 Automating Code Formatting": [[1, "automating-code-formatting"]], "3 Python Language Rules": [[1, "python-language-rules"]], "3.1 Type Annotated Code": [[1, "type-annotated-code"]], "3.2 Avoid using mutable default arguments": [[1, "avoid-using-mutable-default-arguments"]], "4 Python Style Rules": [[1, "python-style-rules"]], "API": [[0, "api"]], "Basic usage: Auto mode": [[4, "basic-usage-auto-mode"]], "Black-Box mode": [[4, "black-box-mode"]], "Common": [[0, "common"]], "Contents:": [[3, null]], "Contributing": [[2, "contributing"]], "Create Explainer for OpenVINO Model instance": [[4, "create-explainer-for-openvino-model-instance"]], "Create Explainer from ONNX model file": [[4, "create-explainer-from-onnx-model-file"]], "Create Explainer from OpenVINO IR file": [[4, "create-explainer-from-openvino-ir-file"]], "Disclaimer": [[2, "disclaimer"]], "Example scripts": [[4, "example-scripts"]], "Explainer: the main interface to XAI algorithms": [[4, "explainer-the-main-interface-to-xai-algorithms"]], "Explanation": [[0, "explanation"]], "Features": [[2, "features"]], "Hello, OpenVINO XAI": [[2, "hello-openvino-xai"]], "Indices and tables": [[3, "indices-and-tables"]], "Installation": [[2, "installation"]], "License": [[2, "license"]], "Methods": [[0, "methods"]], "More advanced use-cases": [[2, "more-advanced-use-cases"]], "OpenVINO XAI Architecture": [[4, "openvino-xai-architecture"]], "OpenVINO-XAI Python API": [[0, null]], "OpenVINO\u2122 Explainable AI Toolkit - OpenVINO XAI": [[2, null]], "OpenVINO\u2122 Explainable AI Toolkit User Guide": [[4, null]], "Playing with the examples": [[2, "playing-with-the-examples"]], "Plot saliency maps": [[4, "plot-saliency-maps"]], "Quick Start": [[2, "quick-start"]], "Running without preprocess_fn": [[4, "running-without-preprocess-fn"]], "Specifying preprocess_fn": [[4, "specifying-preprocess-fn"]], "Style Guide for Python Code": [[1, null]], "Supported XAI methods": [[2, "supported-xai-methods"]], "Supported explainable models": [[2, "supported-explainable-models"]], "Welcome to OpenVINO\u2122 Explainable AI Toolkit\u2019s documentation!": [[3, null]], "What\u2019s new in v1.0.0": [[2, "what-s-new-in-v1-0-0"]], "White-Box mode": [[4, "white-box-mode"]], "XAI insertion (white-box usage)": [[4, "xai-insertion-white-box-usage"]]}, "docnames": ["api-manual", "coding-guide", "getting-started", "index", "user-guide"], "envversion": {"sphinx": 63, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1}, "filenames": ["api-manual.rst", "coding-guide.md", "getting-started.md", "index.rst", "user-guide.md"], "indexentries": {"__call__() (openvino_xai.explainer.explainer method)": [[0, "openvino_xai.explainer.Explainer.__call__", false]], "__call__() (openvino_xai.explainer.visualizer method)": [[0, "openvino_xai.explainer.Visualizer.__call__", false]], "activationmap (class in openvino_xai.methods)": [[0, "openvino_xai.methods.ActivationMap", false]], "aise (class in openvino_xai.methods)": [[0, "openvino_xai.methods.AISE", false]], "colormap() (in module openvino_xai.explainer)": [[0, "openvino_xai.explainer.colormap", false]], "create_method() (openvino_xai.explainer.explainer method)": [[0, "openvino_xai.explainer.Explainer.create_method", false]], "detclassprobabilitymap (class in openvino_xai.methods)": [[0, "openvino_xai.methods.DetClassProbabilityMap", false]], "explain() (openvino_xai.explainer.explainer method)": [[0, "openvino_xai.explainer.Explainer.explain", false]], "explainer (class in openvino_xai.explainer)": [[0, "openvino_xai.explainer.Explainer", false]], "explainmode (class in openvino_xai.explainer)": [[0, "openvino_xai.explainer.ExplainMode", false]], "explanation (class in openvino_xai.explainer)": [[0, "openvino_xai.explainer.Explanation", false]], "featuremapperturbationbase (class in openvino_xai.methods)": [[0, "openvino_xai.methods.FeatureMapPerturbationBase", false]], "generate_saliency_map() (openvino_xai.methods.aise method)": [[0, "openvino_xai.methods.AISE.generate_saliency_map", false]], "generate_saliency_map() (openvino_xai.methods.rise method)": [[0, "openvino_xai.methods.RISE.generate_saliency_map", false]], "generate_saliency_map() (openvino_xai.methods.whiteboxmethod method)": [[0, "openvino_xai.methods.WhiteBoxMethod.generate_saliency_map", false]], "generate_xai_branch() (openvino_xai.methods.activationmap method)": [[0, "openvino_xai.methods.ActivationMap.generate_xai_branch", false]], "generate_xai_branch() (openvino_xai.methods.detclassprobabilitymap method)": [[0, "openvino_xai.methods.DetClassProbabilityMap.generate_xai_branch", false]], "generate_xai_branch() (openvino_xai.methods.featuremapperturbationbase method)": [[0, "openvino_xai.methods.FeatureMapPerturbationBase.generate_xai_branch", false]], "generate_xai_branch() (openvino_xai.methods.whiteboxmethod method)": [[0, "openvino_xai.methods.WhiteBoxMethod.generate_xai_branch", false]], "has_xai() (in module openvino_xai.common)": [[0, "openvino_xai.common.has_xai", false]], "insert_xai() (in module openvino_xai.api)": [[0, "openvino_xai.api.insert_xai", false]], "layout (class in openvino_xai.explainer)": [[0, "openvino_xai.explainer.Layout", false]], "method (class in openvino_xai.common)": [[0, "openvino_xai.common.Method", false]], "model_forward() (openvino_xai.explainer.explainer method)": [[0, "openvino_xai.explainer.Explainer.model_forward", false]], "module": [[0, "module-openvino_xai.api", false], [0, "module-openvino_xai.common", false], [0, "module-openvino_xai.explainer", false], [0, "module-openvino_xai.methods", false]], "openvino_xai.api": [[0, "module-openvino_xai.api", false]], "openvino_xai.common": [[0, "module-openvino_xai.common", false]], "openvino_xai.explainer": [[0, "module-openvino_xai.explainer", false]], "openvino_xai.methods": [[0, "module-openvino_xai.methods", false]], "overlay() (in module openvino_xai.explainer)": [[0, "openvino_xai.explainer.overlay", false]], "plot() (openvino_xai.explainer.explanation method)": [[0, "openvino_xai.explainer.Explanation.plot", false]], "prepare_model() (openvino_xai.methods.whiteboxmethod method)": [[0, "openvino_xai.methods.WhiteBoxMethod.prepare_model", false]], "reciprocam (class in openvino_xai.methods)": [[0, "openvino_xai.methods.ReciproCAM", false]], "resize() (in module openvino_xai.explainer)": [[0, "openvino_xai.explainer.resize", false]], "rise (class in openvino_xai.methods)": [[0, "openvino_xai.methods.RISE", false]], "saliency_map (openvino_xai.explainer.explanation property)": [[0, "openvino_xai.explainer.Explanation.saliency_map", false]], "save() (openvino_xai.explainer.explanation method)": [[0, "openvino_xai.explainer.Explanation.save", false]], "scaling() (in module openvino_xai.common)": [[0, "openvino_xai.common.scaling", false]], "shape (openvino_xai.explainer.explanation property)": [[0, "openvino_xai.explainer.Explanation.shape", false]], "targets (openvino_xai.explainer.explanation property)": [[0, "openvino_xai.explainer.Explanation.targets", false]], "task (class in openvino_xai.common)": [[0, "openvino_xai.common.Task", false]], "visualize() (openvino_xai.explainer.visualizer method)": [[0, "openvino_xai.explainer.Visualizer.visualize", false]], "visualizer (class in openvino_xai.explainer)": [[0, "openvino_xai.explainer.Visualizer", false]], "vitreciprocam (class in openvino_xai.methods)": [[0, "openvino_xai.methods.ViTReciproCAM", false]], "whiteboxmethod (class in openvino_xai.methods)": [[0, "openvino_xai.methods.WhiteBoxMethod", false]]}, "objects": {"openvino_xai": [[0, 0, 0, "-", "api"], [0, 0, 0, "-", "common"], [0, 0, 0, "-", "explainer"], [0, 0, 0, "-", "methods"]], "openvino_xai.api": [[0, 1, 1, "", "insert_xai"]], "openvino_xai.common": [[0, 2, 1, "", "Method"], [0, 2, 1, "", "Task"], [0, 1, 1, "", "has_xai"], [0, 1, 1, "", "scaling"]], "openvino_xai.explainer": [[0, 2, 1, "", "ExplainMode"], [0, 2, 1, "", "Explainer"], [0, 2, 1, "", "Explanation"], [0, 2, 1, "", "Layout"], [0, 2, 1, "", "Visualizer"], [0, 1, 1, "", "colormap"], [0, 1, 1, "", "overlay"], [0, 1, 1, "", "resize"]], "openvino_xai.explainer.Explainer": [[0, 3, 1, "", "__call__"], [0, 3, 1, "", "create_method"], [0, 3, 1, "", "explain"], [0, 3, 1, "", "model_forward"]], "openvino_xai.explainer.Explanation": [[0, 3, 1, "", "plot"], [0, 4, 1, "", "saliency_map"], [0, 3, 1, "", "save"], [0, 4, 1, "", "shape"], [0, 4, 1, "", "targets"]], "openvino_xai.explainer.Visualizer": [[0, 3, 1, "", "__call__"], [0, 3, 1, "", "visualize"]], "openvino_xai.methods": [[0, 2, 1, "", "AISE"], [0, 2, 1, "", "ActivationMap"], [0, 2, 1, "", "DetClassProbabilityMap"], [0, 2, 1, "", "FeatureMapPerturbationBase"], [0, 2, 1, "", "RISE"], [0, 2, 1, "", "ReciproCAM"], [0, 2, 1, "", "ViTReciproCAM"], [0, 2, 1, "", "WhiteBoxMethod"]], "openvino_xai.methods.AISE": [[0, 3, 1, "", "generate_saliency_map"]], "openvino_xai.methods.ActivationMap": [[0, 3, 1, "", "generate_xai_branch"]], "openvino_xai.methods.DetClassProbabilityMap": [[0, 3, 1, "", "generate_xai_branch"]], "openvino_xai.methods.FeatureMapPerturbationBase": [[0, 3, 1, "", "generate_xai_branch"]], "openvino_xai.methods.RISE": [[0, 3, 1, "", "generate_saliency_map"]], "openvino_xai.methods.WhiteBoxMethod": [[0, 3, 1, "", "generate_saliency_map"], [0, 3, 1, "", "generate_xai_branch"], [0, 3, 1, "", "prepare_model"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "property", "Python property"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method", "4": "py:property"}, "terms": {"": [0, 1, 4], "0": [0, 4], "07421": 0, "1": [0, 3, 4], "10": 2, "11": 4, "14": 4, "1806": 0, "2": [0, 2, 3, 4], "2024": 2, "224": [2, 4], "23": 0, "24": 0, "255": [0, 4], "26": 2, "29": 2, "293": 2, "3": [2, 3], "30": 2, "4": [0, 3, 4], "484": 1, "5": [0, 4], "604": 1, "7": 4, "8": [0, 1], "A": [0, 2], "As": 4, "At": 2, "By": [0, 2, 4], "For": [2, 4], "If": [0, 1, 4], "In": [2, 4], "Not": 0, "The": [0, 4], "There": 4, "To": [0, 1, 4], "With": 0, "__call__": 0, "ab": 0, "about": 4, "abov": 4, "abstract": 0, "abus": 2, "accept": 2, "access": 0, "accord": [1, 2], "activ": 2, "activationmap": [0, 2], "actual": 2, "ad": 4, "adapt": 0, "add": 0, "add_to_list": 1, "addit": [2, 4], "aeroplan": 4, "affect": 4, "after": [0, 4], "aggreg": 0, "agjust": 4, "agnost": 2, "agre": 2, "ai": 1, "ais": [0, 2, 4], "algorithm": [0, 2, 3], "all": [0, 1, 2, 4], "alreadi": [0, 4], "also": [1, 2, 4], "altern": 4, "among": 0, "an": [2, 4], "analysi": 2, "analyz": [2, 4], "anchor": 0, "ani": [1, 2, 4], "anim": 2, "apach": 2, "api": [2, 3, 4], "append": 1, "appli": [0, 4], "applic": 2, "appreci": 2, "approach": 4, "ar": [0, 2, 4], "architectur": [2, 3], "area": 2, "arg": 0, "argument": [2, 4], "around": 2, "arrai": 0, "arxiv": [0, 2], "asset": [2, 4], "assum": 0, "atss": 0, "augment": 2, "auto": [0, 2, 3], "autom": 3, "automat": [1, 2], "avail": [0, 4], "avoid": [0, 2, 4], "backbon": 4, "backend": [0, 4], "balanc": 0, "bandwidth": 0, "base": [0, 2, 4], "basic": [2, 3], "batch": 4, "befor": [0, 1], "beforehand": 4, "begin": 4, "behavior": 2, "below": 4, "best": 2, "better": 4, "bhw": 0, "bhwc": 0, "bias": 0, "bicycl": 4, "bin": 2, "bird": 4, "black": [0, 1, 2, 3], "blackbox": [0, 4], "blackboxxaimethod": 0, "block": 0, "bnhw": 0, "bnhwc": 0, "boat": 4, "bodi": 2, "bool": 0, "bottl": 4, "box": [0, 2, 3], "branch": [0, 2, 4], "bu": 4, "budget": 0, "build": 1, "built": 4, "bunch": [2, 4], "call": [0, 2, 4], "callabl": 0, "cam": 0, "can": [0, 1, 2, 4], "car": 4, "case": [1, 4], "cast_to_uint8": 0, "cat": 4, "caus": 2, "cd": 2, "cell": 0, "chair": 4, "chang": [1, 2, 4], "check": [0, 1, 2], "cheetah": 2, "cheetah_person": [2, 4], "cl": 0, "class": [0, 2, 4], "classif": [0, 2, 4], "classprobabilitymap": 2, "clone": 2, "cls_token": 0, "cnn": [0, 2, 4], "code": [2, 3, 4], "codebas": 1, "colormap": 0, "colormap_typ": 0, "column": 0, "com": 2, "command": 1, "commit": [1, 2], "common": 3, "compil": 0, "complex": 2, "complic": 2, "compris": 1, "comput": [0, 2, 4], "con": 4, "configur": [0, 1], "consist": 1, "contain": [0, 2], "content": 4, "contribut": 3, "conveni": 4, "convent": 1, "convers": 2, "convert": 2, "convolut": 4, "copyright": 2, "core": [2, 4], "correspond": [2, 4], "could": 2, "count": 0, "cow": 4, "cpu": 0, "creat": [0, 2], "create_method": 0, "current": 4, "custom": [0, 2, 4], "cv": [0, 4], "cv2": [2, 4], "data": [0, 2, 4], "data_help": 0, "debug": 2, "decid": 2, "deep": 2, "def": [1, 4], "default": [0, 2, 4], "defin": 0, "depend": [0, 4], "describ": 0, "detail": [2, 4], "detclassprobabilitymap": 0, "detect": [0, 2], "detector": 0, "dev": 2, "develop": 2, "devic": 0, "device_nam": 0, "dict": 0, "differ": [0, 2], "dimens": 4, "dimension": 0, "diningt": 4, "dir_path": [0, 2], "direct": 0, "directli": [2, 4], "directori": [2, 4], "disabl": 1, "disclaim": 3, "displai": 4, "dive": 2, "divers": 2, "do": [1, 2, 4], "document": [1, 2, 4], "doe": 4, "dog": 4, "domain": 2, "don": 1, "download": [2, 4], "downstream": 4, "dsize": [2, 4], "dump": 0, "dure": 4, "e": [0, 2], "easiest": 4, "edit": 2, "effcient": 0, "effect": 4, "either": [0, 4], "embed": [0, 4], "embed_sc": [0, 4], "enabl": 2, "ensur": 1, "enum": 0, "enumer": 2, "env": 2, "environ": 2, "epsilon": 0, "error": 2, "even": 2, "exampl": 3, "exist": 2, "expand_dim": [2, 4], "expanded_imag": 4, "expect": 2, "experiment": 2, "explain": [0, 1], "explain_method": [0, 4], "explain_mod": [0, 4], "explainmod": [0, 4], "explainresult": 0, "explan": [2, 3, 4], "expos": 2, "extra": [2, 4], "extract": 0, "fail": 4, "fals": [0, 2, 4], "fast": [2, 4], "featur": 3, "featuremapperturb": 0, "featuremapperturbationbas": 0, "feed": 2, "few": [2, 4], "file": [0, 1, 2], "fill": 0, "final_norm": 0, "finction": 0, "find": 2, "first": 4, "flag": 0, "flexibl": 4, "float": 0, "focus": 2, "follow": [0, 1, 2, 4], "format": [3, 4], "forward": [0, 4], "found": [1, 4], "from": [0, 2], "full": 2, "fulli": 2, "func": 1, "function": [0, 2, 4], "g": 0, "gaussian": 0, "genai": 2, "gener": [0, 2, 4], "generate_saliency_map": 0, "generate_xai_branch": 0, "get": [0, 2, 3], "git": 2, "github": 2, "give": [1, 2], "given": 2, "global": 2, "graph": [0, 4], "grayscal": 0, "grid": [0, 4], "guid": [2, 3], "guidelin": 1, "ha": [0, 4], "has_xai": 0, "have": [0, 2], "head": [0, 2], "help": [2, 4], "here": [0, 4], "higher": 2, "highlight": 2, "hint": 1, "histori": 2, "hold": 0, "hood": 4, "hors": 4, "how": 4, "howev": 4, "http": [0, 2], "human": 2, "hundr": 4, "i": [0, 1, 2, 4], "id": 1, "ident": 0, "identifi": 4, "identitypreprocessfn": 0, "ie_api": 0, "imag": [0, 2, 4], "imagin": 2, "implement": [0, 4], "import": [1, 2, 4], "imread": [2, 4], "includ": 2, "increment": 2, "index": [0, 3], "indic": [0, 2, 4], "infer": [0, 2, 4], "inner": 4, "input": [0, 2, 4], "input_imag": 0, "insert": [0, 2, 3], "insert_xai": [0, 2, 4], "instal": 3, "instead": 4, "int": [0, 1], "integ": 0, "intel": 2, "intend": 2, "interest": 2, "interfac": [0, 2, 3], "intermedi": [2, 3, 4], "internation": 2, "introduct": 3, "involv": 4, "ir": [0, 2, 3], "isort": 1, "issu": [0, 2], "item": 1, "iter": 0, "its": 0, "jpg": [2, 4], "jupyt": [0, 4], "k": 0, "kernel": 0, "kernel_width": 0, "know": 2, "known": 2, "kwarg": 0, "label": [0, 2, 4], "label_nam": [0, 2, 4], "languag": 3, "larg": 0, "last": [0, 4], "last_conv_node_nam": 4, "later": 0, "layer": [0, 4], "layout": 0, "learn": 4, "let": 2, "librari": [2, 4], "licens": 3, "like": [1, 2, 4], "limit": 2, "line": 2, "link": [0, 2], "list": [0, 1], "llm": 2, "load": [0, 2, 4], "load_model": 0, "local": 0, "locally_bias": 0, "log": 2, "logic": 0, "logit": 4, "look": [2, 4], "low": 0, "m": 2, "machin": 4, "mai": 2, "main": [2, 3], "maintain": 1, "major": 4, "make": 4, "manag": 0, "mandatori": 1, "mani": 4, "manual": 3, "map": [0, 2, 3], "mask": 0, "matplotlib": [0, 4], "max": 0, "max_num_plot": 0, "mean": 0, "measur": 4, "memori": 0, "mention": 4, "method": [3, 4], "methodbas": 0, "might": 2, "mlc_mobilenetv3_large_voc": [2, 4], "mobilenet_v3": 2, "mode": [0, 2, 3], "model": 0, "model_forward": 0, "model_path": 4, "model_xai": [0, 4], "modif": 4, "modifi": 0, "modul": 3, "moment": 2, "more": 4, "mosaic": 0, "most": 2, "motorbik": 4, "multipl": [0, 2], "multiple_maps_per_image_color": 0, "multiple_maps_per_image_grai": 0, "mypi": 1, "name": [0, 2, 4], "ndarrai": [0, 2, 4], "need": [2, 4], "negvet": 0, "new": 4, "node": [0, 4], "none": [0, 1], "normal": [0, 2], "note": [2, 4], "notebook": [2, 4], "np": [0, 2, 4], "num": 1, "num_anchor": 0, "num_cel": 0, "num_collumn": 4, "num_column": [0, 4], "num_iterations_per_kernel": 0, "num_mask": 0, "number": 0, "numpi": [0, 2, 4], "nutshel": 4, "o": 0, "object": [0, 2, 4], "observ": 2, "older": 2, "omit": 0, "onc": 4, "one": [0, 4], "one_map_per_image_color": 0, "one_map_per_image_grai": 0, "onli": 2, "onnx": [0, 2], "op": 0, "open": 4, "opencv": 4, "openvino": 1, "openvino_xai": [0, 2, 4], "openvinotoolkit": 2, "oper": [0, 4], "optim": 0, "option": [0, 2, 4], "order": 0, "org": 0, "origin": [0, 2, 4], "original_input_imag": [0, 4], "otherwis": 0, "otx_model": [2, 4], "our": [2, 4], "output": [0, 2, 4], "output_path": 4, "output_s": 0, "ov": [0, 2, 4], "ov_model": 2, "ovc": 2, "ovdict": 0, "over": [0, 2], "overhead": 4, "overlai": [0, 2, 4], "overlay_weight": 0, "ovxai": 2, "own": 4, "p": 0, "packag": 2, "page": 3, "paper": 0, "paramet": [0, 4], "part": 4, "pass": [0, 2, 4], "path": [0, 2, 4], "pathlik": 0, "pep": 1, "per": [0, 2, 4], "perform": 4, "person": 4, "perspect": 2, "perturb": 4, "pick": 4, "pip": 2, "pipelin": [2, 4], "pleas": 2, "plot": [0, 3], "possibl": 4, "post": [0, 2, 4], "postprocess": 0, "postprocess_fn": [0, 4], "pottedpl": 4, "pre": [0, 1, 2, 4], "predefin": 0, "predict": [0, 4], "prepar": [0, 2, 4], "prepare_model": 0, "preprocess": [0, 4], "preprocess_fn": 0, "preprocessed_imag": 4, "preset": 0, "primarili": 4, "principl": 2, "prior": 0, "pro": 4, "prob": 0, "process": [0, 2, 4], "product": 2, "project": 2, "properli": 1, "properti": 0, "provid": [0, 2, 3, 4], "purpos": 2, "py": [2, 4], "pypi": 2, "pytest": [2, 4], "python": [2, 3, 4], "python3": 2, "pytorch": 2, "qualiti": [0, 2], "question": 2, "quick": 3, "quit": 4, "random": 0, "rang": [0, 4], "raw": 0, "re": 0, "read_model": [2, 4], "readabl": 1, "reason": 2, "recipro": 0, "reciprocam": [0, 2, 4], "recogn": 2, "recommend": [0, 1, 4], "refer": 2, "region": 2, "rel": 4, "releas": 2, "repositori": 2, "repres": [0, 4], "represent": [2, 3, 4], "request": 2, "requir": [0, 1, 4], "resiz": [0, 2, 4], "resized_imag": 4, "respect": 2, "respons": [2, 4], "result": [0, 4], "retriev": 4, "return": [0, 1, 4], "right": 2, "rise": [0, 2, 4], "row": 4, "rule": 3, "run": [1, 2], "run_classif": [2, 4], "runnabl": 2, "runtim": [0, 2, 4], "salienc": [0, 2, 3], "saliency_map": [0, 4], "saliency_map_s": 0, "same": 2, "sampl": 0, "save": [0, 1, 2, 4], "scale": [0, 4], "scale_output": 0, "scenario": [2, 4], "score": 0, "script": [0, 2, 3], "search": 3, "see": 2, "seed": 0, "select": [0, 2], "self": 0, "sequenti": 4, "set": [0, 1, 2, 4], "shape": 0, "sheep": 4, "should": [1, 4], "simpl": 2, "sinc": 4, "singl": 0, "size": 0, "skin": 2, "slow": 2, "small": 4, "so": 4, "sofa": 4, "softwar": 2, "solver": 0, "solver_epsilon": 0, "some": 0, "sourc": [0, 2], "specif": [0, 1, 2, 4], "specifi": 0, "speed": 0, "src": [2, 4], "ssd": 0, "stage": 0, "start": 3, "state": 2, "step": [0, 4], "store": [2, 4], "str": [0, 1, 2], "string": 4, "style": 3, "suit": [2, 3, 4], "supplement": 1, "support": 4, "t": 1, "tab": 2, "target": [0, 2, 4], "target_explain_label": 4, "target_id": 0, "target_indic": 0, "target_lay": [0, 4], "task": [0, 2, 4], "tbd": 1, "tell": 2, "term": 2, "test": [2, 4], "test_classif": [2, 4], "thank": 2, "them": [0, 2], "therefor": 0, "therein": 2, "thi": [0, 1, 2, 4], "those": 2, "thousand": 4, "throughout": 1, "time": [1, 2], "timm": 2, "todo": 0, "token": 0, "tool": 1, "toolkit": 1, "top": 2, "torch": 2, "tradeoff": 0, "train": 4, "transform": [0, 2], "treat": 4, "true": [0, 2, 4], "try": [2, 4], "tupl": 0, "tutori": 4, "tvmonitor": 4, "tweak": 2, "two": 4, "type": [0, 2, 4], "u": 2, "under": [2, 4], "understand": 2, "unit": 2, "unsupport": 2, "up": [0, 2], "upcom": 2, "updat": [1, 4], "us": [0, 4], "usag": [0, 3], "use_gaussian": 0, "user": [0, 2, 3], "usual": 4, "util": 0, "v": 2, "valid": [2, 4], "valu": [0, 1], "vari": 4, "venv": 2, "verifi": 2, "version": 2, "via": 2, "violat": 2, "virtual": 2, "vision": 2, "visual": [0, 2, 4], "visualizationparamet": 0, "vitrecipro": 0, "vitreciprocam": [0, 2], "voc_label": 4, "wa": 4, "wai": 4, "want": 2, "warn": 2, "watch": 2, "we": [1, 2, 4], "weight": 0, "well": 2, "were": 1, "when": [0, 1], "whether": 0, "which": [0, 2, 4], "while": 2, "white": [0, 2, 3], "whitebox": [0, 4], "whiteboxmethod": 0, "who": 2, "whole": 0, "why": 2, "wide": 4, "window": 4, "work": [2, 4], "workaround": 2, "would": 2, "wrapper": 0, "x": [0, 4], "xai": 3, "xml": [0, 2, 4], "yolox": 0, "you": [1, 2, 4], "your": [1, 2, 4]}, "titles": ["OpenVINO-XAI Python API", "Style Guide for Python Code", "OpenVINO\u2122 Explainable AI Toolkit - OpenVINO XAI", "Welcome to OpenVINO\u2122 Explainable AI Toolkit\u2019s documentation!", "OpenVINO\u2122 Explainable AI Toolkit User Guide"], "titleterms": {"": [2, 3], "0": 2, "1": 1, "2": 1, "3": 1, "4": 1, "advanc": 2, "ai": [2, 3, 4], "algorithm": 4, "annot": 1, "api": 0, "architectur": 4, "argument": 1, "auto": 4, "autom": 1, "avoid": 1, "basic": 4, "black": 4, "box": 4, "case": 2, "code": 1, "common": 0, "content": 3, "contribut": 2, "creat": 4, "default": 1, "disclaim": 2, "document": 3, "exampl": [2, 4], "explain": [2, 3, 4], "explan": 0, "featur": 2, "file": 4, "format": 1, "from": 4, "guid": [1, 4], "hello": 2, "indic": 3, "insert": 4, "instal": 2, "instanc": 4, "interfac": 4, "introduct": 1, "ir": 4, "languag": 1, "licens": 2, "main": 4, "map": 4, "method": [0, 2], "mode": 4, "model": [2, 4], "more": 2, "mutabl": 1, "new": 2, "onnx": 4, "openvino": [0, 2, 3, 4], "plai": 2, "plot": 4, "preprocess_fn": 4, "python": [0, 1], "quick": 2, "rule": 1, "run": 4, "salienc": 4, "script": 4, "specifi": 4, "start": 2, "style": 1, "support": 2, "tabl": 3, "toolkit": [2, 3, 4], "type": 1, "us": [1, 2], "usag": 4, "user": 4, "v1": 2, "welcom": 3, "what": 2, "white": 4, "without": 4, "xai": [0, 2, 4]}}) \ No newline at end of file diff --git a/develop/user-guide.html b/develop/user-guide.html index 99c1dcb4..b209009c 100644 --- a/develop/user-guide.html +++ b/develop/user-guide.html @@ -346,6 +346,7 @@ <h3><a href="index.html">Table of Contents</a></h3> <li class="toctree-l2"><a class="reference internal" href="#white-box-mode">White-Box mode</a></li> <li class="toctree-l2"><a class="reference internal" href="#black-box-mode">Black-Box mode</a></li> <li class="toctree-l2"><a class="reference internal" href="#xai-insertion-white-box-usage">XAI insertion (white-box usage)</a></li> +<li class="toctree-l2"><a class="reference internal" href="#plot-saliency-maps">Plot saliency maps</a></li> <li class="toctree-l2"><a class="reference internal" href="#example-scripts">Example scripts</a></li> </ul> </li> @@ -416,7 +417,13 @@ <h1>OpenVINO™ Explainable AI Toolkit User Guide<a class="headerlink" href="#op <li><p><a class="reference internal" href="#openvino-explainable-ai-toolkit-user-guide"><span class="xref myst">OpenVINO™ Explainable AI Toolkit User Guide</span></a></p> <ul> <li><p><a class="reference internal" href="#openvino-xai-architecture"><span class="xref myst">OpenVINO XAI Architecture</span></a></p></li> -<li><p><a class="reference internal" href="#explainer-the-main-interface-to-xai-algorithms"><span class="xref myst"><code class="docutils literal notranslate"><span class="pre">Explainer</span></code>: the main interface to XAI algorithms</span></a></p></li> +<li><p><a class="reference internal" href="#explainer-the-main-interface-to-xai-algorithms"><span class="xref myst"><code class="docutils literal notranslate"><span class="pre">Explainer</span></code>: the main interface to XAI algorithms</span></a></p> +<ul> +<li><p><a class="reference internal" href="#create-explainer-for-openvino-model-instance"><span class="xref myst">Create Explainer for OpenVINO Model instance</span></a></p></li> +<li><p><a class="reference internal" href="#create-explainer-from-openvino-ir-file"><span class="xref myst">Create Explainer from OpenVINO IR file</span></a></p></li> +<li><p><a class="reference internal" href="#create-explainer-from-onnx-model-file"><span class="xref myst">Create Explainer from ONNX model file</span></a></p></li> +</ul> +</li> <li><p><a class="reference internal" href="#basic-usage-auto-mode"><span class="xref myst">Basic usage: Auto mode</span></a></p> <ul> <li><p><a class="reference internal" href="#running-without-preprocess_fn"><span class="xref myst">Running without <code class="docutils literal notranslate"><span class="pre">preprocess_fn</span></code></span></a></p></li> @@ -426,6 +433,7 @@ <h1>OpenVINO™ Explainable AI Toolkit User Guide<a class="headerlink" href="#op <li><p><a class="reference internal" href="#white-box-mode"><span class="xref myst">White-Box mode</span></a></p></li> <li><p><a class="reference internal" href="#black-box-mode"><span class="xref myst">Black-Box mode</span></a></p></li> <li><p><a class="reference internal" href="#xai-insertion-white-box-usage"><span class="xref myst">XAI insertion (white-box usage)</span></a></p></li> +<li><p><a class="reference internal" href="#plot-saliency-maps"><span class="xref myst">Plot saliency maps</span></a></p></li> <li><p><a class="reference internal" href="#example-scripts"><span class="xref myst">Example scripts</span></a></p></li> </ul> </li> @@ -495,12 +503,12 @@ <h3>Running without <code class="docutils literal notranslate"><span class="pre" <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">cv2</span> <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> <span class="kn">import</span> <span class="nn">openvino.runtime</span> <span class="k">as</span> <span class="nn">ov</span> -<span class="kn">from</span> <span class="nn">openvino.runtime.utils.data_helpers.wrappers</span> <span class="kn">import</span> <span class="n">OVDict</span> +<span class="kn">from</span> <span class="nn">from</span> <span class="n">typing</span> <span class="kn">import</span> <span class="nn">Mapping</span> <span class="kn">import</span> <span class="nn">openvino_xai</span> <span class="k">as</span> <span class="nn">xai</span> -<span class="k">def</span> <span class="nf">postprocess_fn</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n">OVDict</span><span class="p">):</span> +<span class="k">def</span> <span class="nf">postprocess_fn</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n">Mapping</span><span class="p">):</span> <span class="c1"># Implementing our own post-process function based on the model's implementation</span> <span class="c1"># Return "logits" model output</span> <span class="k">return</span> <span class="n">x</span><span class="p">[</span><span class="s2">"logits"</span><span class="p">]</span> @@ -540,7 +548,7 @@ <h3>Specifying <code class="docutils literal notranslate"><span class="pre">prep <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">cv2</span> <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> <span class="kn">import</span> <span class="nn">openvino.runtime</span> <span class="k">as</span> <span class="nn">ov</span> -<span class="kn">from</span> <span class="nn">openvino.runtime.utils.data_helpers.wrappers</span> <span class="kn">import</span> <span class="n">OVDict</span> +<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Mapping</span> <span class="kn">import</span> <span class="nn">openvino_xai</span> <span class="k">as</span> <span class="nn">xai</span> @@ -551,7 +559,7 @@ <h3>Specifying <code class="docutils literal notranslate"><span class="pre">prep <span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">expand_dims</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="k">return</span> <span class="n">x</span> -<span class="k">def</span> <span class="nf">postprocess_fn</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n">OVDict</span><span class="p">):</span> +<span class="k">def</span> <span class="nf">postprocess_fn</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n">Mapping</span><span class="p">):</span> <span class="c1"># Implementing our own post-process function based on the model's implementation</span> <span class="c1"># Return "logits" model output</span> <span class="k">return</span> <span class="n">x</span><span class="p">[</span><span class="s2">"logits"</span><span class="p">]</span> @@ -715,6 +723,63 @@ <h2>XAI insertion (white-box usage)<a class="headerlink" href="#xai-insertion-wh </pre></div> </div> </section> +<section id="plot-saliency-maps"> +<h2>Plot saliency maps<a class="headerlink" href="#plot-saliency-maps" title="Link to this heading">#</a></h2> +<p>To visualize saliency maps, use the <code class="docutils literal notranslate"><span class="pre">explanation.plot</span></code> function.</p> +<p>The <code class="docutils literal notranslate"><span class="pre">matplotlib</span></code> backend is more convenient for plotting saliency maps in Jupyter notebooks, as it uses the Matplotlib library. By default it generates the grid with 4 images per row (can be agjusted by <code class="docutils literal notranslate"><span class="pre">num_collumns</span></code> parameter).</p> +<p>The <code class="docutils literal notranslate"><span class="pre">cv</span></code> backend is better for visualization in Python scripts, as it opens extra windows to display the generated saliency maps.</p> +<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">cv2</span> +<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> +<span class="kn">import</span> <span class="nn">openvino.runtime</span> <span class="k">as</span> <span class="nn">ov</span> +<span class="kn">import</span> <span class="nn">openvino_xai</span> <span class="k">as</span> <span class="nn">xai</span> + +<span class="k">def</span> <span class="nf">preprocess_fn</span><span class="p">(</span><span class="n">image</span><span class="p">:</span> <span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">)</span> <span class="o">-></span> <span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">:</span> +<span class="w"> </span><span class="sd">"""Preprocess the input image."""</span> + <span class="n">resized_image</span> <span class="o">=</span> <span class="n">cv2</span><span class="o">.</span><span class="n">resize</span><span class="p">(</span><span class="n">src</span><span class="o">=</span><span class="n">image</span><span class="p">,</span> <span class="n">dsize</span><span class="o">=</span><span class="p">(</span><span class="mi">224</span><span class="p">,</span> <span class="mi">224</span><span class="p">))</span> + <span class="n">expanded_image</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">expand_dims</span><span class="p">(</span><span class="n">resized_image</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> + <span class="k">return</span> <span class="n">expanded_image</span> + +<span class="c1"># Create ov.Model</span> +<span class="n">MODEL_PATH</span> <span class="o">=</span> <span class="s2">"path/to/model.xml"</span> +<span class="n">model</span> <span class="o">=</span> <span class="n">ov</span><span class="o">.</span><span class="n">Core</span><span class="p">()</span><span class="o">.</span><span class="n">read_model</span><span class="p">(</span><span class="n">MODEL_PATH</span><span class="p">)</span> <span class="c1"># type: ov.Model</span> + +<span class="c1"># The Explainer object will prepare and load the model once in the beginning</span> +<span class="n">explainer</span> <span class="o">=</span> <span class="n">xai</span><span class="o">.</span><span class="n">Explainer</span><span class="p">(</span> + <span class="n">model</span><span class="p">,</span> + <span class="n">task</span><span class="o">=</span><span class="n">xai</span><span class="o">.</span><span class="n">Task</span><span class="o">.</span><span class="n">CLASSIFICATION</span><span class="p">,</span> + <span class="n">preprocess_fn</span><span class="o">=</span><span class="n">preprocess_fn</span><span class="p">,</span> +<span class="p">)</span> + +<span class="n">voc_labels</span> <span class="o">=</span> <span class="p">[</span> + <span class="s1">'aeroplane'</span><span class="p">,</span> <span class="s1">'bicycle'</span><span class="p">,</span> <span class="s1">'bird'</span><span class="p">,</span> <span class="s1">'boat'</span><span class="p">,</span> <span class="s1">'bottle'</span><span class="p">,</span> <span class="s1">'bus'</span><span class="p">,</span> <span class="s1">'car'</span><span class="p">,</span> <span class="s1">'cat'</span><span class="p">,</span> <span class="s1">'chair'</span><span class="p">,</span> <span class="s1">'cow'</span><span class="p">,</span> <span class="s1">'diningtable'</span><span class="p">,</span> + <span class="s1">'dog'</span><span class="p">,</span> <span class="s1">'horse'</span><span class="p">,</span> <span class="s1">'motorbike'</span><span class="p">,</span> <span class="s1">'person'</span><span class="p">,</span> <span class="s1">'pottedplant'</span><span class="p">,</span> <span class="s1">'sheep'</span><span class="p">,</span> <span class="s1">'sofa'</span><span class="p">,</span> <span class="s1">'train'</span><span class="p">,</span> <span class="s1">'tvmonitor'</span> +<span class="p">]</span> + +<span class="c1"># Generate and process saliency maps (as many as required, sequentially)</span> +<span class="n">image</span> <span class="o">=</span> <span class="n">cv2</span><span class="o">.</span><span class="n">imread</span><span class="p">(</span><span class="s2">"path/to/image.jpg"</span><span class="p">)</span> + +<span class="c1"># Run explanation</span> +<span class="n">explanation</span> <span class="o">=</span> <span class="n">explainer</span><span class="p">(</span> + <span class="n">image</span><span class="p">,</span> + <span class="n">explain_mode</span><span class="o">=</span><span class="n">ExplainMode</span><span class="o">.</span><span class="n">WHITEBOX</span><span class="p">,</span> + <span class="n">label_names</span><span class="o">=</span><span class="n">voc_labels</span><span class="p">,</span> + <span class="n">target_explain_labels</span><span class="o">=</span><span class="p">[</span><span class="mi">7</span><span class="p">,</span> <span class="mi">11</span><span class="p">],</span> <span class="c1"># ['cat', 'dog'] also possible as target classes to explain</span> +<span class="p">)</span> + +<span class="c1"># Use matplotlib (recommended for Jupyter) - default backend</span> +<span class="n">explanation</span><span class="o">.</span><span class="n">plot</span><span class="p">()</span> <span class="c1"># plot all saliency map</span> +<span class="n">explanation</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">targets</span><span class="o">=</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span> <span class="n">backend</span><span class="o">=</span><span class="s2">"matplotlib"</span><span class="p">)</span> +<span class="n">explanation</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">targets</span><span class="o">=</span><span class="p">[</span><span class="s2">"cat"</span><span class="p">],</span> <span class="n">backend</span><span class="o">=</span><span class="s2">"matplotlib"</span><span class="p">)</span> +<span class="c1"># Plots a grid with 5 images per row</span> +<span class="n">explanation</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">num_columns</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">backend</span><span class="o">=</span><span class="s2">"matplotlib"</span><span class="p">)</span> + +<span class="c1"># Use OpenCV (recommended for Python) - will open new windows with saliency maps</span> +<span class="n">explanation</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">backend</span><span class="o">=</span><span class="s2">"cv"</span><span class="p">)</span> <span class="c1"># plot all saliency map</span> +<span class="n">explanation</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">targets</span><span class="o">=</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span> <span class="n">backend</span><span class="o">=</span><span class="s2">"cv"</span><span class="p">)</span> +<span class="n">explanation</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">targets</span><span class="o">=</span><span class="p">[</span><span class="s2">"cat"</span><span class="p">],</span> <span class="n">backend</span><span class="o">=</span><span class="s2">"cv"</span><span class="p">)</span> +</pre></div> +</div> +</section> <section id="example-scripts"> <h2>Example scripts<a class="headerlink" href="#example-scripts" title="Link to this heading">#</a></h2> <p>More usage scenarios that can be used with your own models and images as arguments are available in <a class="reference internal" href="#../../examples"><span class="xref myst">examples</span></a>.</p> @@ -792,6 +857,7 @@ <h2>Example scripts<a class="headerlink" href="#example-scripts" title="Link to <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#white-box-mode">White-Box mode</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#black-box-mode">Black-Box mode</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#xai-insertion-white-box-usage">XAI insertion (white-box usage)</a></li> +<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#plot-saliency-maps">Plot saliency maps</a></li> <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#example-scripts">Example scripts</a></li> </ul> </nav></div>