Skip to main content

Adaptive gradient clipping for PyTorch, TensorFlow, and JAX

Project description

smartclip

PyPI version CI Docs Build Docs Python Versions License: MIT

Adaptive gradient clipping for PyTorch, TensorFlow, and JAX.

SmartClip keeps training stable with adaptive, per-step clipping you can enable in one line of code.

See the full documentation for details of the algorithms, framework usage examples, and logging metrics.

Supported Algorithms

Install

pip install smartclip

Optional extras provide helpers for specific frameworks (install framework wheels first per vendor docs):

pip install "smartclip[torch]"    # PyTorch + Lightning/Transformers helpers
pip install "smartclip[tf]"       # TensorFlow/Keras helpers
pip install "smartclip[jax]"      # JAX/Flax/Optax helpers

Quickstart

PyTorch

import torch
import smartclip as sc

model = MyModel().to("cpu")
opt = torch.optim.AdamW(model.parameters(), lr=3e-4)

with sc.clip_context(model, opt):  # Defaults to AutoClip
    for x, y in loader:
        opt.zero_grad(set_to_none=True)
        loss = model(x).loss_fn(y)
        loss.backward()
        opt.step()  # clipped automatically

TensorFlow/Keras

import tensorflow as tf
import smartclip as sc

model = MyModel()
opt = tf.keras.optimizers.Adam(3e-4)

with sc.clip_context(model, opt, clipper=sc.ZScoreClip(zmax=3.0)):  # Use the zscore algorithm
    model.fit(ds, epochs=5)

JAX/Optax

import jax
import optax
from flax import linen as nn
import smartclip as sc

model = MyModel()  # Flax Module
tx = optax.adam(3e-4)

with sc.clip_context(model, tx):  # wraps tx.update
    grads = jax.grad(loss_fn)(params, batch)
    updates, opt_state = tx.update(grads, opt_state, params)  # clipped automatically
    params = optax.apply_updates(params, updates)

See documentation for full guides for TensorFlow, JAX, Lightning, Keras, and HF Trainer.

Contributing

We welcome issues and pull requests. See contribute.md for developer setup, testing, docs, and release workflows.

License

MIT

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

smartclip-0.1.1.tar.gz (32.3 kB view details)

Uploaded Source

Built Distribution

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

smartclip-0.1.1-py3-none-any.whl (33.3 kB view details)

Uploaded Python 3

File details

Details for the file smartclip-0.1.1.tar.gz.

File metadata

  • Download URL: smartclip-0.1.1.tar.gz
  • Upload date:
  • Size: 32.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for smartclip-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c0dff18670d92a33b16b95b857a911f6addfcf0c24895279c537c5be969d0dfc
MD5 e3a9f8c99fe2b274506ec8aa4d2c1963
BLAKE2b-256 43c637a8bc1c786fb3d16d9af1708e5ca4ac9fd8113c95c9a7f3ddbb97f636b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for smartclip-0.1.1.tar.gz:

Publisher: release.yml on stefangordon/smartclip

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file smartclip-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: smartclip-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 33.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for smartclip-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3002e3b47c946cf6686a80096b455176fc30572fc48f595c05d3df5ac778d580
MD5 0759783e054b70716f958320dc366bdc
BLAKE2b-256 b1e722adae999f4d443ab78f52185737251ad38a45d5c4bcb09818419ced31e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for smartclip-0.1.1-py3-none-any.whl:

Publisher: release.yml on stefangordon/smartclip

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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