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.Modulerange les tableaux dans les feuilles et tout le reste (yax.StaticField) dans la structure :jax.grad(loss)(model),jax.jitetoptimizer.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. UnStaticFieldpeut 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 dejax.vmap).rkeyest 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 : leTrainerentraîne enFalse, valide et rend le meilleur modèle enTrue. - 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 parmother_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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
yaxlib-0.1.0-py3-none-any.whl
(37.2 kB
view details)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d2c46b161e995d51d27d5e36cb482e3a8a99c84bd4931bd45ef822bded7eb93
|
|
| MD5 |
a2c4a21bcf770e45664be88e1219ff55
|
|
| BLAKE2b-256 |
efe0baa1d94510de646cf255ba1b17033c2cc882e1dcf1448dd80eda47a1543a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
969c4fe312f1f7b7005d7350c88346bfe975f01c2fa1d9654fd5fbc84cdb5487
|
|
| MD5 |
70f4e5b99290befa17c2ad640e8fd40d
|
|
| BLAKE2b-256 |
0c48d60efe4cc16d72681ecc5d3549949140658a4456f3c586e8d2a4e742d338
|