opax
opax is an optimizer library for JAX. It is a reimplementation of optax using PAX's stateful module.
Installation
To install the latest version:
pip3 install git+https://github.com/ntt123/opax.git
Getting started
To create an optimizer:
import opax
optimizer = opax.adam(1e-4).init(parameters)
Note: parameters is a pytree of trainable parameters.
To update parameters:
updates, optimizer = opax.transform_gradients(gradients, optimizer, parameters)
parameters = opax.apply_updates(parameters, updates)
Note: gradients has the same treedef as parameters.
The opax.chain function
opax follows optax's philosophy in combining GradientTransformation's together with opax.chain function:
optimizer = opax.chain(
opax.clip_by_global_norm(1.0),
opax.scale_by_adam(),
opax.scale(1e-4),
).init(parameters)
Learning rate schedule
opax supports learning rate scheduling with opax.scale_by_schedule.
def staircase_schedule_fn(step: jnp.ndarray):
p = jnp.floor(step.astype(jnp.float32) / 1000)
return jnp.exp2(-p)
optimizer = opax.chain(
opax.clip_by_global_norm(1.0),
opax.scale_by_adam(),
opax.scale_by_schedule(staircase_schedule_fn),
).init(parameters)
Utilities
To get the current global norm:
print(optimizer[0].global_norm)
Note: global_norm is a property of ClipByGlobalNorm class.
To get the current learning rate:
print(optimizer[-1].learning_rate)
Note: learning_rate is a property of ScaleBySchedule class.
Metadata
Release files for opax 0.2.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| opax-0.2.11.tar.gz | 7.6 kB | Without provenance | Details for opax-0.2.11.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| opax-0.2.11-py3-none-any.whl | Python 3 | none | any | Details for opax-0.2.11-py3-none-any.whl |
Total release size: 15.6 kB
Release files / opax-0.2.11.tar.gz
| Download URL | opax-0.2.11.tar.gz |
|---|---|
| Size | 7.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e7d9a90dc95e7c1bd91945e1448b2eef549a751136df323933b7f2864034e1bf
|
|
BLAKE2b-256 checksum How to use checksums |
2159ce6da3441cc7b53c06c516b80bd6f657b110ce981a87a13980ccbc66d60b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.5
|
Release files / opax-0.2.11-py3-none-any.whl
| Download URL | opax-0.2.11-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
efb65dfef1ace7fdad205a4310db0401277958071c047663dc0efdd42fd3319d
|
|
BLAKE2b-256 checksum How to use checksums |
37bcc5e94f4ba25a0dfd8ab328371bd1175e26d33342827347d5ecd3d94da0f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.5
|
Security for opax 0.2.11
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.