Skip to content

Commit 5ea2de6

Browse files
author
semantic-release
committed
chore(release): 0.10.1
1 parent 9171bbd commit 5ea2de6

File tree

3 files changed

+105
-2
lines changed

3 files changed

+105
-2
lines changed

CHANGELOG.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,109 @@
11
# CHANGELOG
22

33

4+
## v0.10.1 (2026-03-02)
5+
6+
### Bug Fixes
7+
8+
- **core**: Fix one-liners and small guard additions across codebase
9+
([`3d1591b`](https://github.com/johnmarktaylor91/torchlens/commit/3d1591b003675d91191e7a0abc728ad5eb562fae))
10+
11+
- Remove duplicate "contiguous" from ZERO_FLOPS_OPS (flops.py) - Fix strip("*") → rstrip("*") to
12+
avoid stripping leading chars (tensor_log.py) - Fix return type annotation to include str return
13+
(trace_model.py) - Replace isinstance(attr, Callable) with callable(attr) (model_funcs.py) -
14+
Remove dead pass_num=1 overwrite of parameterized value (logging_funcs.py) - Fix
15+
parent_params=None → [] for consistency (finalization.py) - Add int key guard in
16+
_getitem_after_pass (interface.py) - Add max(0, ...) guard for empty model module count
17+
(interface.py) - Add empty list guard in _get_lookup_help_str (interface.py) - Add explicit
18+
KeyError raise for failed lookups (interface.py) - Remove dead unreachable module address check
19+
(interface.py) - Add str() cast for integer layer keys (trace_model.py) - Add list() copy to
20+
prevent getfullargspec mutation (trace_model.py) - Reset has_saved_gradients and unlogged_layers
21+
in save_new_activations (logging_funcs.py)
22+
23+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
24+
25+
- **misc**: Fix decoration, param detection, vis forwarding, and guards
26+
([`4269c4d`](https://github.com/johnmarktaylor91/torchlens/commit/4269c4d35beeabf54468fbc99b083290e830ff98))
27+
28+
- Remove dead double-decoration guard in decorate_torch.py - Add hasattr guard for torch.identity
29+
installation - Add None guard for code_context in FuncCallLocation.__getitem__ - Fix is_quantized
30+
to check actual qint dtypes, not all non-float - Forward show_buffer_layers to rolled edge check
31+
in vis.py
32+
33+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
34+
35+
- **safety**: Add try/finally cleanup and exception state resets
36+
([`c9bdb7f`](https://github.com/johnmarktaylor91/torchlens/commit/c9bdb7fc354c0b44f3cfcf6bde17e623a3b6f6db))
37+
38+
- Wrap validate_saved_activations in try/finally for cleanup (user_funcs.py) - Wrap show_model_graph
39+
render_graph in try/finally with cleanup (user_funcs.py) - Reset _track_tensors and _pause_logging
40+
in exception handler (trace_model.py) - Update test to expect [] instead of None for cleared
41+
parent_params
42+
43+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
44+
45+
- **validation**: Fix isinstance checks and misleading variable name
46+
([`581f286`](https://github.com/johnmarktaylor91/torchlens/commit/581f286fc7c25f50b8b82b44d1f3fcbe03b4f01c))
47+
48+
- Replace type(val) == torch.Tensor with isinstance() (12 occurrences) - Rename mean_output to
49+
output_std for accuracy
50+
51+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
52+
53+
### Refactoring
54+
55+
- **postprocess**: Split monolithic postprocess.py into thematic package
56+
([`cd14d27`](https://github.com/johnmarktaylor91/torchlens/commit/cd14d2744ea60db3a911905c377fc6c52123a1cc))
57+
58+
Break 2,115-line postprocess.py into a postprocess/ package with 5 modules: - graph_traversal.py:
59+
Steps 1-4 (output nodes, ancestry, orphans, distances) - control_flow.py: Steps 5-7 (conditional
60+
branches, module fixes, buffers) - loop_detection.py: Step 8 (loop detection, isomorphic subgraph
61+
expansion) - labeling.py: Steps 9-12 (label mapping, final info, renaming, cleanup) -
62+
finalization.py: Steps 13-18 (undecoration, timing, params, modules, finish)
63+
64+
No behavioral changes — pure file reorganization.
65+
66+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
67+
68+
### Testing
69+
70+
- **aesthetic**: Add aesthetic testing infrastructure for visual inspection
71+
([`73cdf01`](https://github.com/johnmarktaylor91/torchlens/commit/73cdf017c29f2385cebb721e7b08b88177807365))
72+
73+
Add regenerable human-inspectable outputs in tests/test_outputs/: - Comprehensive text report
74+
(aesthetic_report.txt) covering all user-facing reprs, accessors, DataFrames, error messages, and
75+
field dumps for every major data structure (ModelLog, TensorLog, RolledTensorLog, ModuleLog,
76+
ModulePassLog, ParamLog, ModuleAccessor, ParamAccessor) - 28 visualization PDFs exercising nesting
77+
depth, rolled/unrolled views, buffer visibility, graph direction, frozen params, and loop
78+
detection - 6 new aesthetic test models (AestheticDeepNested, AestheticSharedModule,
79+
AestheticBufferBranch, AestheticKitchenSink, AestheticFrozenMix) - Rename visualization_outputs/ →
80+
test_outputs/ for cleaner structure
81+
82+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
83+
84+
- **aesthetic**: Add gradient visualization coverage
85+
([`085dcd9`](https://github.com/johnmarktaylor91/torchlens/commit/085dcd9caf95b1ca364f83a7f97bd020f611c521))
86+
87+
Add gradient backward arrows (blue edges) to aesthetic testing: - New _vis_gradient helper using
88+
log_forward_pass(save_gradients=True) + backward() - 5 gradient vis PDFs: deep nested, frozen mix,
89+
kitchen sink (various configs) - Gradient section (G) in text report: TensorLog/ParamLog grad
90+
fields, frozen contrast - GRADIENT_VIS_GALLERY integrated into LaTeX PDF report as Section 3
91+
92+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
93+
94+
- **aesthetic**: Add LaTeX PDF report with embedded visualizations
95+
([`d101326`](https://github.com/johnmarktaylor91/torchlens/commit/d101326906573b95d62f5d518b13ee4be7025cb9))
96+
97+
Generate a comprehensive PDF report (aesthetic_report.pdf) alongside the text report, with: -
98+
tcolorbox-formatted sections for each model's outputs - Full field dumps for all data structures -
99+
All 28 visualization PDFs embedded inline with captions - Table of contents, figure numbering,
100+
proper typography - Skips gracefully if pdflatex not installed
101+
102+
Also saves the .tex source for customization.
103+
104+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
105+
106+
4107
## v0.10.0 (2026-03-02)
5108

6109
### Features

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "torchlens"
7-
version = "0.10.0"
7+
version = "0.10.1"
88
description = "A package for extracting activations from PyTorch models"
99
readme = "README.md"
1010
license = "GPL-3.0-only"

torchlens/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Top level package: make the user-facing functions top-level, rest accessed as submodules."""
22

3-
__version__ = "0.10.0"
3+
__version__ = "0.10.1"
44

55
from .user_funcs import (
66
log_forward_pass,

0 commit comments

Comments
 (0)