pub struct DebugVisualizer { /* private fields */ }Expand description
Debug visualizer that renders real plot documents to disk.
Every create_* / plot_* method renders the supplied data into a real
document (a genuine SVG/HTML/JSON file with axes, points and colour-mapped
cells derived from the caller’s numbers), writes it under
VisualizationConfig::output_directory and returns that file’s path.
Formats this crate cannot encode without an optional raster backend
(ImageFormat::PNG, PDF, LaTeX, MP4, GIF, WebM) are rejected with
a structured error naming the missing encoder — they are never written out
as SVG bytes under a misleading extension.
Implementations§
Source§impl DebugVisualizer
impl DebugVisualizer
pub fn new(config: VisualizationConfig) -> Self
pub fn with_default_config() -> Self
Sourcepub fn config(&self) -> &VisualizationConfig
pub fn config(&self) -> &VisualizationConfig
The configuration this visualizer renders with.
Sourcepub fn create_line_plot(&mut self, data: &PlotData) -> Result<String>
pub fn create_line_plot(&mut self, data: &PlotData) -> Result<String>
Render a line plot and return the path of the file written.
Sourcepub fn create_heatmap(&mut self, data: &HeatmapData) -> Result<String>
pub fn create_heatmap(&mut self, data: &HeatmapData) -> Result<String>
Render a heatmap and return the path of the file written.
Sourcepub fn create_histogram(&mut self, data: &HistogramData) -> Result<String>
pub fn create_histogram(&mut self, data: &HistogramData) -> Result<String>
Render a histogram and return the path of the file written.
Sourcepub fn plot_tensor_distribution(
&mut self,
name: &str,
values: &[f64],
bins: usize,
) -> Result<String>
pub fn plot_tensor_distribution( &mut self, name: &str, values: &[f64], bins: usize, ) -> Result<String>
Plot tensor distribution
Sourcepub fn plot_training_metrics(
&mut self,
steps: &[f64],
losses: &[f64],
accuracies: Option<&[f64]>,
) -> Result<String>
pub fn plot_training_metrics( &mut self, steps: &[f64], losses: &[f64], accuracies: Option<&[f64]>, ) -> Result<String>
Plot training metrics
Sourcepub fn plot_gradient_flow(
&mut self,
layer_name: &str,
steps: &[f64],
gradient_norms: &[f64],
) -> Result<String>
pub fn plot_gradient_flow( &mut self, layer_name: &str, steps: &[f64], gradient_norms: &[f64], ) -> Result<String>
Plot gradient flow
Sourcepub fn plot_tensor_heatmap(
&mut self,
name: &str,
values: &[Vec<f64>],
) -> Result<String>
pub fn plot_tensor_heatmap( &mut self, name: &str, values: &[Vec<f64>], ) -> Result<String>
Plot tensor heatmap
Sourcepub fn plot_activation_patterns(
&mut self,
layer_name: &str,
inputs: &[f64],
outputs: &[f64],
) -> Result<String>
pub fn plot_activation_patterns( &mut self, layer_name: &str, inputs: &[f64], outputs: &[f64], ) -> Result<String>
Plot activation patterns
Sourcepub fn get_plot_names(&self) -> Vec<String>
pub fn get_plot_names(&self) -> Vec<String>
Names of the plots this visualizer has actually rendered, in creation order.
Empty until something has been plotted — it is not a catalogue of what the visualizer could draw.
Sourcepub fn get_plot(&self, name: &str) -> Option<&RenderedPlot>
pub fn get_plot(&self, name: &str) -> Option<&RenderedPlot>
Look up a rendered plot by title.
Sourcepub fn create_dashboard(&mut self, plot_names: &[String]) -> Result<String>
pub fn create_dashboard(&mut self, plot_names: &[String]) -> Result<String>
Build a dashboard page embedding the named plots.
SVG/HTML renderings are inlined verbatim; a JSON rendering is linked by path (there is nothing to inline). Unknown names are rejected with a structured error listing what has actually been rendered, rather than emitting an empty card that looks like a plot.
Sourcepub fn export_plot_data(
&self,
plot_name: &str,
export_path: &Path,
) -> Result<()>
pub fn export_plot_data( &self, plot_name: &str, export_path: &Path, ) -> Result<()>
Export a rendered plot’s source data as JSON to export_path.
Errors when plot_name has not been rendered — the previous version
wrote the literal string "Plot data for: <name>", which contained no
plot data at all and succeeded for names that never existed.
Sourcepub fn save_to_file(&self, filename: &str) -> Result<()>
pub fn save_to_file(&self, filename: &str) -> Result<()>
Write the most recently rendered plot document to
output_directory/filename.
Errors when nothing has been rendered yet, instead of writing the literal placeholder text the previous implementation emitted.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DebugVisualizer
impl RefUnwindSafe for DebugVisualizer
impl Send for DebugVisualizer
impl Sync for DebugVisualizer
impl Unpin for DebugVisualizer
impl UnsafeUnpin for DebugVisualizer
impl UnwindSafe for DebugVisualizer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.