Skip to main content

Gradient field & loss landscape visualizer for PyTorch and NumPy

Project description

gradfield 🔥

Gradient field & loss landscape visualizer for PyTorch and NumPy

Visualize any function's loss surface, gradient arrows, and optimization trajectories — in an interactive 3D HTML chart. No server, no config, one function call.

Python PyPI License


Install

pip install gradfield

With PyTorch support:

pip install gradfield torch

Quick Start

Any Python function

from gradfield import sample_grid, render

field = sample_grid(
    lambda x, y: (1 - x)**2 + 100 * (y - x**2)**2,  # Rosenbrock
    x_range=(-2, 2),
    y_range=(-1, 3),
    resolution=80,
)

render(field, title="Rosenbrock Banana")
# Opens an interactive HTML in your browser ✓

PyTorch model loss landscape

import torch.nn as nn
from gradfield import model_loss_fn, sample_grid, render

landscape = model_loss_fn(
    model=my_model,
    loss_fn=nn.CrossEntropyLoss(),
    inputs=X_batch,
    targets=y_batch,
    scale=0.5,
)

field = sample_grid(landscape, resolution=50)
render(field, title="My Model Loss Landscape")

With optimization trajectories

import numpy as np

traj = np.array([[2.0, 2.0], [1.5, 1.5], [0.5, 0.5], [0.0, 0.0]])

render(field, trajectories=[traj], title="Gradient Descent Path")

API Reference

sample_grid(fn, x_range, y_range, resolution)

Sample a function over a 2D grid using NumPy central differences for gradients.

sample_grid_torch(fn, x_range, y_range, resolution)

Same as above but uses torch.autograd for exact gradients.

model_loss_fn(model, loss_fn, inputs, targets, scale)

Wraps a PyTorch model into a 2D landscape function using random filter-normalized directions (Li et al. 2018).

render(field, trajectories, title, output, colorscale, show_gradients)

Render the sampled field as an interactive Plotly HTML with:

  • 3D surface plot
  • 2D contour map
  • Gradient vector field overlay
  • Optimization trajectory paths

Examples

cd examples
python example_numpy.py       # Rosenbrock + gradient descent
python example_torch_model.py # MLP on XOR loss landscape

Roadmap

  • SGD / Adam / RMSProp built-in trajectory recorders
  • Jupyter widget support
  • Multi-trajectory comparison

License

MIT — built with ❤️ by Aman

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gradfield-0.5.0.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gradfield-0.5.0-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

Details for the file gradfield-0.5.0.tar.gz.

File metadata

  • Download URL: gradfield-0.5.0.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for gradfield-0.5.0.tar.gz
Algorithm Hash digest
SHA256 7e1ca42f7859f8477018e47dff18b7b45174b94835f97df44cc9617847689c0e
MD5 7e1309bb3affc8c3cc18fde02ed5c16c
BLAKE2b-256 f15569c34251d66568d821aafe7f62e869872a7b011af874b3918b452423dd07

See more details on using hashes here.

File details

Details for the file gradfield-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: gradfield-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 13.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for gradfield-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d9135ba517b06693ff1dd48212278486195b2da0445a81361b0d27030e715e93
MD5 5e080a22f1411093f9144772a31ceba3
BLAKE2b-256 e6dd0b88c1362ad220567467a52ef203c7fa2fd5eb46d8ad91b22455d4551fb9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page