Skip to main content

YA+ — le logo de yaxlib : un yack, un A et un +, imbriques

yaxlib

Un mini-framework de réseaux de neurones pour jax. Documentation — 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))

Pourquoi yax ?

L'atout de yax est la simplicité : rester au plus près du jax de base. La hiérarchie des frameworks se mesure en concepts additionnels — flax introduit ses collections de variables, ses scopes et son cycle init/apply ; equinox réduit cela à des modules-pytrees, mais y ajoute sa machinerie de filtrage (filter_grad, partition/combine) et son drapeau inference dans les feuilles. yax n'ajoute que deux idées : le module-pytree strict (les feuilles sont exactement les paramètres, tout le reste est statique) et la signature apply(x, rkey). Conséquence : jax.grad, jax.jit, jax.vmap et optax s'utilisent nus, exactement comme dans la documentation jax — rien à désapprendre, rien à envelopper.

Né pour un cours, yax est dimensionné pour servir au-delà : des modèles de recherche compacts, lisibles, et un périmètre volontairement réduit — ce qui n'y est pas se code en jax ordinaire, sans friction.

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). Le Trainer inclus dans yax entraîne en False, valide et rend le meilleur modèle en True. Mais yax peut aussi s'utiliser sans ce Trainer.
  • Immutabilité : on « modifie » un module avec yax.tree_at.

Contenu

  • yax.layers : Linear, MLP, Dropout, PReLU, LayerNorm, Embedding, Conv_nd (convolution 1D/2D/3D...), RNN_layer (GRU/LSTM), MultiHeadAttention, TransformerBlock, MessagePassing_layer, encodage positionnel.
  • yax.models : UNet_nd et FNO_nd (opérateur neuronal de Fourier — le même modèle s'évalue à n'importe quelle résolution), tous deux en dimension quelconque ; MiniYOLO ; et trois modèles génératifs — VAE, RealNVP (flot normalisant à vraisemblance exacte), Diffusion (DDPM) — compacts et lisibles, chacun avec sa perte et sa méthode d'échantillonnage.
  • yax.training : Trainer (checkpoints par mother_folder), History, pertes (loss_fn(model, x, y, rkey)), samplers. Le Trainer ne connaît pas les données : une époque = un appel au sampler puis une validation. DatasetSampler(X, Y, batch_size) pour un jeu fini (mélangé sans remise), FunctionSampler(f, nb_batches) pour des batchs générés — physique, PINN, Ritz, où y vaut None. La validation est un batch fixe (x_val, y_val) ou un sampler appelé avec une clé constante (même jeu à toutes les époques).
  • 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]     # ajoute pytest
pytest tests/

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.5.tar.gz (146.0 kB 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.5-py3-none-any.whl (54.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: yaxlib-0.1.5.tar.gz
  • Upload date:
  • Size: 146.0 kB
  • 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.5.tar.gz
Algorithm Hash digest
SHA256 b5cffc42d15342baa1a825e3b80194104d596089f9a52b1b49abb23eab6fdd61
MD5 fc7abf20d8689b019ba0a3ea01261e05
BLAKE2b-256 5869f35938d605ccd7375ccab3da195e4c92602341f1a867b7c590539341508b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: yaxlib-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 54.6 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ac3e0c3ad4568419a7e1eb8678cd4156b7dcba5bfe819c10692e2092f2965df1
MD5 96e31adeb34dfcd3b75e92149f2c8f0e
BLAKE2b-256 243dc86a58caf91a326d40ebdbc2d2e90d00b590dd0fdb44fa68e0d388f24d9f

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.6

2 files

This release

0.1.5 This release

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

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