yax.preprocessing¶
Des transformations de données, sans paramètre appris.
Séries temporelles¶
Fenêtrage de séries temporelles, pour la prévision.
sliding_windows
¶
yax.preprocessing.sliding_windows(series, window, horizon, *, stride=1)
Découpe une série temporelle en couples (fenêtre, suite), pour la prévision.
Chaque exemple est une fenêtre de window pas consécutifs ; sa cible est
formée des horizon pas qui la suivent. Deux fenêtres successives sont
décalées de stride pas.
série : s0 s1 s2 s3 s4 s5 s6 window=3, horizon=2, stride=1
exemple 0 : [s0 s1 s2] -> [s3 s4]
exemple 1 : [s1 s2 s3] -> [s4 s5]
exemple 2 : [s2 s3 s4] -> [s5 s6]
Découper la série en tranches d'entraînement, de validation et de test avant le fenêtrage, puis fenêtrer chaque tranche séparément.
Paramètres :
| Nom | Type | Description | Défaut |
|---|---|---|---|
series
|
ArrayLike
|
la série, de forme |
obligatoire |
window
|
int
|
longueur d'une fenêtre. |
obligatoire |
horizon
|
int
|
nombre de pas à prévoir ; 0 est permis (fenêtres seules). |
obligatoire |
stride
|
int
|
décalage entre deux fenêtres. |
1
|
Renvoie :
| Type | Description |
|---|---|
tuple[Array, Array]
|
Le couple |
Code source dans yax/preprocessing/windows.py
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
Séquences et attention¶
sinusoidal_positional_encoding
¶
yax.preprocessing.sinusoidal_positional_encoding(seq_len, dim)
Encodage positionnel sinusoïdal, à ajouter aux vecteurs d'une séquence.
L'attention ne tient pas compte de l'ordre des éléments ; cet encodage le
réintroduit. Chaque position est représentée par des sinus et cosinus à
plusieurs fréquences : les hautes distinguent les positions voisines, les
basses situent dans la séquence entière. Rien n'est appris ; la version
apprise est un yax.layers.Embedding(seq_len, dim) indexé par la position.
Paramètres :
| Nom | Type | Description | Défaut |
|---|---|---|---|
seq_len
|
int
|
longueur de la séquence. |
obligatoire |
dim
|
int
|
taille des vecteurs ; doit être paire. |
obligatoire |
Renvoie :
| Type | Description |
|---|---|
Array
|
Un tableau |
Code source dans yax/preprocessing/positional_encoding.py
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
causal_mask
¶
yax.preprocessing.causal_mask(seq_len)
Masque causal : chaque position ne voit que les positions précédentes et elle-même.
Paramètres :
| Nom | Type | Description | Défaut |
|---|---|---|---|
seq_len
|
int
|
longueur de la séquence. |
obligatoire |
Renvoie :
| Type | Description |
|---|---|
Array
|
Un tableau |
Code source dans yax/preprocessing/masks.py
11 12 13 14 15 16 17 18 19 20 21 | |
padding_mask
¶
yax.preprocessing.padding_mask(is_real_token)
Masque de remplissage : les positions de remplissage ne sont vues par aucune position.
Paramètres :
| Nom | Type | Description | Défaut |
|---|---|---|---|
is_real_token
|
ArrayLike
|
booléens de forme |
obligatoire |
Renvoie :
| Type | Description |
|---|---|
Array
|
Un tableau |
Code source dans yax/preprocessing/masks.py
24 25 26 27 28 29 30 31 32 33 34 | |
Images¶
Enrichissement d'images (augmentation de données).
Des transformations aléatoires qui conservent l'étiquette, pour une
image de forme (canaux, H, W). Elles sont compatibles avec jax.jit et
jax.vmap : on les applique dans le pas d'entraînement, avec une clé
différente à chaque époque. Toutes ont la signature f(rkey, img, ...).
Une transformation doit préserver le sens de l'image : une symétrie horizontale convient à des photos d'animaux, pas à des chiffres manuscrits.
random_augmentation
¶
yax.preprocessing.random_augmentation(rkey, img)
Exemple de chaîne d'augmentations, qui compose plusieurs transformations de ce module.
À adapter à ses données. La symétrie horizontale n'y figure pas, car elle ne convient pas à toutes les images.
Paramètres :
| Nom | Type | Description | Défaut |
|---|---|---|---|
rkey
|
Array
|
clé aléatoire. |
obligatoire |
img
|
Array
|
l'image, de forme |
obligatoire |
Code source dans yax/preprocessing/augmentation.py
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | |
random_horizontal_flip
¶
yax.preprocessing.random_horizontal_flip(rkey, img, *, prob=0.5)
Symétrie gauche-droite, appliquée avec la probabilité prob.
Paramètres :
| Nom | Type | Description | Défaut |
|---|---|---|---|
rkey
|
Array
|
clé aléatoire. |
obligatoire |
img
|
Array
|
l'image, de forme |
obligatoire |
prob
|
float
|
probabilité d'appliquer la symétrie. |
0.5
|
Code source dans yax/preprocessing/augmentation.py
17 18 19 20 21 22 23 24 25 26 27 28 | |
random_rotation
¶
yax.preprocessing.random_rotation(rkey, img, *, max_angle_degrees=15.0)
Rotation d'angle aléatoire autour du centre, avec interpolation linéaire.
Paramètres :
| Nom | Type | Description | Défaut |
|---|---|---|---|
rkey
|
Array
|
clé aléatoire. |
obligatoire |
img
|
Array
|
l'image, de forme |
obligatoire |
max_angle_degrees
|
float
|
angle maximal, en degrés. |
15.0
|
Code source dans yax/preprocessing/augmentation.py
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | |
random_scale_translate
¶
yax.preprocessing.random_scale_translate(rkey, img, *, max_zoom=0.2, max_shift=2.0)
Zoom autour du centre et translation, aléatoires.
Paramètres :
| Nom | Type | Description | Défaut |
|---|---|---|---|
rkey
|
Array
|
clé aléatoire. |
obligatoire |
img
|
Array
|
l'image, de forme |
obligatoire |
max_zoom
|
float
|
variation relative maximale de l'échelle. |
0.2
|
max_shift
|
float
|
translation maximale, en pixels. |
2.0
|
Code source dans yax/preprocessing/augmentation.py
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | |
random_brightness_contrast
¶
yax.preprocessing.random_brightness_contrast(rkey, img, *, max_shift=0.2, max_factor=0.2)
Modifie aléatoirement la luminosité et le contraste.
Paramètres :
| Nom | Type | Description | Défaut |
|---|---|---|---|
rkey
|
Array
|
clé aléatoire. |
obligatoire |
img
|
Array
|
l'image, de forme |
obligatoire |
max_shift
|
float
|
décalage maximal de la luminosité. |
0.2
|
max_factor
|
float
|
variation relative maximale du contraste. |
0.2
|
Code source dans yax/preprocessing/augmentation.py
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | |
random_noise
¶
yax.preprocessing.random_noise(rkey, img, *, sigma=0.05)
Ajoute un bruit gaussien.
Paramètres :
| Nom | Type | Description | Défaut |
|---|---|---|---|
rkey
|
Array
|
clé aléatoire. |
obligatoire |
img
|
Array
|
l'image, de forme |
obligatoire |
sigma
|
float
|
écart-type du bruit. |
0.05
|
Code source dans yax/preprocessing/augmentation.py
48 49 50 51 52 53 54 55 56 | |