Skip to main content

yaxlib

Un mini-framework de réseaux de neurones pour jax, à but pédagogique. Distribution yaxlib, import yax :

pip install yaxlib          # ou : pip install <url du wheel>
import jax.random as jr
import yax

model = yax.MLP((2, 32, 32, 1), "tanh", jr.key(0))

Principes

  • Un modèle est un pytree. yax.Module range les tableaux dans les feuilles et tout le reste (yax.StaticField) dans la structure : jax.grad(loss)(model), jax.jit et optimizer.init(model) acceptent le modèle tel quel, sans machinerie de filtrage. Les champs dynamiques ne peuvent contenir que des tableaux jax, des sous-modules ou des conteneurs de ceux-ci — tout écart est une erreur immédiate et explicite à la construction. Un StaticField peut contenir un tableau : il devient une constante du modèle (encodage positionnel, grille figée), invisible pour les gradients.
  • Signature uniforme apply(x, rkey=None), écrite pour UN échantillon (le batch vient de jax.vmap). rkey est une source d'aléatoire (dropout, échantillonnage), jamais un mode.
  • Le mode se bascule par model = model.set_inference(True/False) (récursif, immuable). En pratique on n'y touche pas : le Trainer entraîne en False, valide et rend le meilleur modèle en True.
  • Immutabilité : on « modifie » un module avec yax.tree_at.

Contenu

  • yax.layers : Linear, MLP, Dropout, LayerNorm, Embedding, Conv_layer, RNN_layer (GRU/LSTM), MultiHeadAttention, TransformerBlock, MessagePassing_layer, encodage positionnel.
  • yax.models : UNet, MiniYOLO (références des mini-projets).
  • yax.training : Trainer (checkpoints par mother_folder), History, pertes (loss_fn(model, x, y, rkey)).
  • yax.image : augmentation différentiable et vmap-able.
  • demos/ : une démonstration synthétique par famille de modèles, qui converge en quelques secondes sur CPU.

Tests

pip install yaxlib[dev]
pytest tests/

Les couches réimplémentées (GRU, LSTM, convolution) sont vérifiées numériquement contre equinox.nn, qui ne sert qu'à cela.

Download files

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

Source Distribution

yaxlib-0.1.0.tar.gz (3.5 MB view details)

Uploaded Source

Built Distribution

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

yaxlib-0.1.0-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: yaxlib-0.1.0.tar.gz
  • Upload date:
  • Size: 3.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yaxlib-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5d2c46b161e995d51d27d5e36cb482e3a8a99c84bd4931bd45ef822bded7eb93
MD5 a2c4a21bcf770e45664be88e1219ff55
BLAKE2b-256 efe0baa1d94510de646cf255ba1b17033c2cc882e1dcf1448dd80eda47a1543a

See more details on using hashes here.

File details

Details for the file yaxlib-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: yaxlib-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 37.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yaxlib-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 969c4fe312f1f7b7005d7350c88346bfe975f01c2fa1d9654fd5fbc84cdb5487
MD5 70f4e5b99290befa17c2ad640e8fd40d
BLAKE2b-256 0c48d60efe4cc16d72681ecc5d3549949140658a4456f3c586e8d2a4e742d338

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page