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.0.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.0-py3-none-any.whl (33.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: smartclip-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 3f4a8b89554c12c3d455a9395f0ab2f3ca2088328f97a3125c16d4b3ff2c1a9d
MD5 6a8051a879d7a8700373ae7790c809aa
BLAKE2b-256 ce925cc99d7c707c2638b5677861ff9acc9c03312d0a956d03c6f88381341f5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for smartclip-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: smartclip-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0cc4f46b64e167d32974bb2bacbe66709a13941254b0361271de7e47ea0521e4
MD5 e2f67c9bcd2c6dc800aae088af6e47f0
BLAKE2b-256 4093fbd5a6ab08d59524785bdf53f6daa8463459792f9baa9c5f87e03978cccb

See more details on using hashes here.

Provenance

The following attestation bundles were made for smartclip-0.1.0-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