Eqxvision is a package of popular computer vision model architectures built using Equinox.
Use the package manager pip to install eqxvision.
pip install eqxvisionrequires: python>=3.7
optional: torch, only if pretrained models are required.
Available at https://eqxvision.readthedocs.io/en/latest/.
Picking a model and doing a forward pass is as simple as ...
import jax import jax.random as jr import equinox as eqx from eqxvision.models import alexnet from eqxvision.utils import CLASSIFICATION_URLS @eqx.filter_jit def forward(net, images, key): keys = jax.random.split(key, images.shape[0]) output = jax.vmap(net, axis_name=('batch'))(images, key=keys) ... net = alexnet(torch_weights=CLASSIFICATION_URLS['alexnet']) images = jr.uniform(jr.PRNGKey(0), shape=(1,3,224,224)) output = forward(net, images, jr.PRNGKey(0))FCN,DeepLabV3andLRASPPadded as new image segmentation models.- Backward incompatible changes to
v0.2.0for loading apretrainedmodel. - Almost all image classification models are ported from
torchvision. - New tutorial for generating
adversarial examplesand others coming soon.
Start with any one of these easy to follow tutorials.
- Better to use
@equinox.filter_jitinstead of@jax.jit. - Use
jax.{v,p}mapwithaxis_name='batch'when using models that use batch normalisation. - Don't forget to switch to
inferencemode for evaluations. (model = eqx.tree_inference(model)) - Initialise Optax optimisers as
optim.init(eqx.filter(net, eqx.is_array)). (See here.)
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
If you plan to modify the code or documentation, please follow the steps below:
- Fork the repository and create your branch from
dev. - If you have modified the code (new feature or bug-fix), please add unit tests.
- If you have changed APIs, update the documentation. Make sure the documentation builds.
mkdocs serve - Ensure the test suite passes.
pytest tests -vvv - Make sure your code passes the formatting checks. Automatically checked with a
pre-commithook.