Menu

Module providing Consciousness Exploration Tools for PyTorch.

Source code for consciousnet.plotting.reconstruction

# -*- coding: utf-8 -*-
##########################################################################
# NSAp - Copyright (C) CEA, 2021
# Distributed under the terms of the CeCILL-B license, as published by
# the CEA-CNRS-INRIA. Refer to the LICENSE file or to
# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
# for details.
##########################################################################

"""
Reconstruction plots.
"""

# Imports
import matplotlib.pyplot as plt
from skimage.metrics import (
    structural_similarity, peak_signal_noise_ratio, normalized_root_mse)


[docs]def plot_reconstruction_error(data, rec_data, fig=None, outfile=None): """ Display the reconstruction error. Parameters ---------- data: array (N, d) the reference data. rec_data: array (N, d) the reconstructed data. fig: Figure, default None a matplotlib figure. outfile: str, default None optionally specify a file to save the plot. Returns ------- similarity: dict the generated similarity metrics. """ similarity = {} for cnt, (name, func) in enumerate((("mse", normalized_root_mse), ("ssim", structural_similarity), ("psnr", peak_signal_noise_ratio))): metrics = [] for idx in range(len(data)): kwargs = {} if name in ("ssim", "psnr"): kwargs["data_range"] = ( rec_data[idx].max() - rec_data[idx].min()) metrics.append(func(data[idx], rec_data[idx], **kwargs)) similarity[name] = metrics if fig is None: fig = plt.figure() ax = fig.add_subplot(3, 2, cnt * 2 + 1) ax.spines["right"].set_visible(False) ax.spines["top"].set_visible(False) ax.set_title(name) ax.hist(metrics, alpha=0.5, bins=20) ax = fig.add_subplot(3, 2, cnt * 2 + 2) ax.axes.xaxis.set_visible(False) ax.spines["right"].set_visible(False) ax.spines["top"].set_visible(False) ax.boxplot(metrics, showfliers=False) plt.subplots_adjust(left=0.05, bottom=0.05, right=0.95, top=0.85, wspace=0.1, hspace=0.5) fig.suptitle("Reconstruction accuracy") if outfile is not None: fig.savefig(outfile) return similarity

Follow us

© 2021, consciousnet developers