torchref.refinement.logger module
Refinement Logger - Separate logging concerns from refinement logic.
Provides verbosity-aware statistics recording and comparison for refinement workflows. Integrates with LossState to capture and display refinement progress.
- class torchref.refinement.logger.Logger(state, verbose=1, pattern='.*', _records=<factory>, _labels=<factory>)[source]
Bases:
objectRefinement logging with verbosity-aware stat reporting.
Integrates with LossState to record, compare, and display refinement stats. Supports regex-based filtering of target names.
- Parameters:
Examples
Basic usage:
from torchref.refinement import LossState, Logger state = LossState(device=device) state.register_target("xray/work", xray_target) state.register_target("geometry/bond", bond_target) logger = Logger(state, verbose=1) # Record before refinement logger.record(label="before_xyz") # ... run refinement ... # Record after and compare logger.record(label="after_xyz") logger.compare(title="XYZ Refinement")
Filtering by pattern:
# Show only X-ray targets logger.current(pattern="xray.*") # Create a logger that only tracks geometry geom_logger = Logger(state, pattern="geometry.*")
- record(label=None)[source]
Record current refinement state.
Gathers stats from all targets in LossState, stores in history. Uses the instance’s pattern filter.
- compare(label_before=None, label_after=None, pattern=None, title='Refinement Comparison')[source]
Print comparison between two recorded states.
If labels not provided, compares last two records.
- Parameters:
label_before (str, optional) – Label of “before” state. Default: second-to-last record.
label_after (str, optional) – Label of “after” state. Default: last record.
pattern (str, optional) – Regex to filter which targets to display. Default: use instance pattern.
title (str, optional) – Title for the comparison output. Default: “Refinement Comparison”.
- current(pattern=None, title='Current State')[source]
Print the current refinement state.
Uses latest recorded state, or records new one if none exist.
- __init__(state, verbose=1, pattern='.*', _records=<factory>, _labels=<factory>)