Skip to content

v0.3.0 — Make weights visible

Choose a tag to compare

@CLVwp CLVwp released this 07 Oct 20:20
· 4 commits to main since this release

Weights are now part of the picture.

New

  • Weight beams. Connections draw as beams. Thickness and color follow the weight magnitude. Wiring is truthful: pass-through ops (ReLU, Pool, Flatten) map neuron i to neuron i. Weighted layers (Conv, Linear) read every input, drawn as sampled bipartite fans.
  • Per-neuron detail. Neurons glow by their incoming |w|. Click a neuron for its index, |w|, and rank. Click a layer for its weight histogram and stats.
  • Selection chain. Click a neuron or a connection to highlight it. Shift+click builds a chain across layers. Esc clears. Camera drags never change the selection.
  • Layouts by layer type. Conv layers draw as feature-map slabs. Dense layers draw as neuron walls.
  • Collapse and expand. Double-click a layer to fold it into one marker.
  • Themes. Dark and light, one click away.
  • Server fixes. One thread per request: a slow parse no longer blocks other drops. nnviz serve also serves your generated HTML files. --port works. Ctrl+C stops clean.

Install

pip install torch --index-url https://download.pytorch.org/whl/cpu
pip install onnx            # only if you use ONNX files
pip install -e .
nnviz model.pth             # writes model.html. Open it in a browser.
nnviz serve                 # drag & drop server at localhost:8000

Known limits

  • Beam fans cap at 3000 per connection. Big walls show a sample. Level of detail arrives in v0.8.
  • Transposed MatMul weights may swap in and out feature counts.
  • safetensors files are detected but not parsed yet (v0.5).