PulseML
Pulse — a live ML training debugger, GUI or CLI, any backend.
Pulse is a live machine learning training debugger designed to monitor tensors, track metrics, visualize heatmaps and line charts, and interact with an integrated AI analyst.
Key Features
- GUI Mode — Opens an interactive matrix picker with live shapes, followed by a live dashboard with a heatmap grid and an integrated AI chat panel.
- Smart Scalars — Scalars (loss, accuracy, learning rate) automatically render as live step-charts rather than heatmaps. Loss-like scalars are auto-detected and pre-selected in the picker.
- CLI Mode — Built for Colab, SSH, or headless environments, printing tensor stats step-by-step, displaying live ASCII charts for scalars, and supporting optional labeled PDF snapshots. Supports pausing training so you can tag new matrices or ask the AI to interpret results, right from the terminal.
- Universal Backend Support — Automatically detects and works with NumPy, PyTorch, TensorFlow, CuPy, and JAX via a shared backend abstraction layer.
- High Performance — Keeps overhead low by converting tensors to
host-side NumPy arrays, reusing Matplotlib figures (
set_data) instead of rebuilding them every step, and matching render sizes to the actual on-screen thumbnail. - Pulse AI Analyst — A context-aware chat panel briefed on its role that can inspect live matrix statistics, heatmaps, and your training code when "Send Code" is enabled.
Past Debugs
- Debugged a custom LLM after a vocab size increase (2.5x) by catching a
normalization bug — dividing residual growth by
math.sqrt(num_layers)instead ofnum_layers— that let activations blow up and halted training. - Debugged another developer's custom attention mechanism producing NaN loss, tracing it to a missing infinity check before a division.
See pulsedb.netlify.app for screenshots of matrix selection, the live dashboard, and the CLI view.
Install
pip install pulseml
tkinter is required for GUI mode and ships with most Python installs.
On Debian/Ubuntu, if it's missing:
sudo apt install python3-tk
For CLI-mode PDF snapshots, fpdf2 is installed automatically as part of
the base package.
Quickstart
Import auto_track and call it right before your training loop starts.
Make sure your loop is wrapped in if __name__ == '__main__':.
from pulse import auto_track
if __name__ == '__main__':
auto_track() # pass your training function for shape discovery, or call directly
# Your training loop
for epoch in range(num_epochs):
# Training logic here
pass
AI Chat & API Keys
To enable the AI chat panel, set the relevant provider's API key as an
environment variable (e.g. ANTHROPIC_API_KEY, OPENAI_API_KEY,
GEMINI_API_KEY, DEEPSEEK_API_KEY) — or leave it unset and Pulse will
prompt you for one inside the GUI the first time you send a message.
License
Proprietary. See LICENSE. Use of this software is governed by the
terms in that file — copying, redistribution, and reverse engineering
are not permitted.
Metadata
Release files for pulseml 0.2.16
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pulseml-0.2.16.tar.gz | 427.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pulseml-0.2.16-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 826.3 kB
Release files / pulseml-0.2.16.tar.gz
| Download URL | pulseml-0.2.16.tar.gz |
|---|---|
| Size | 427.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e9fa1b67b174edc2158e19352a1ffc6ffee745f6c4a257de77d2388e85920478
|
|
BLAKE2b-256 checksum How to use checksums |
890204f7fe6d8e41913339a26f098c05384d6a0f9a41e0c6a79cc5ad85826a59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Release files / pulseml-0.2.16-py3-none-any.whl
| Download URL | pulseml-0.2.16-py3-none-any.whl |
|---|---|
| Size | 398.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6b8003c03e5fc9dedd40272454f368193c559d0788a90daeffa8e110eb40abb6
|
|
BLAKE2b-256 checksum How to use checksums |
4214df07764edb06cf84cc8ac5348911e41cc5a042c43d6a2afdb87c356a211d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|