NeuralNetworks 0.2.0__py3-none-any.whl → 0.2.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- NeuralNetworks/Dependances/__init__.py +75 -0
- NeuralNetworks/Dependances/matplot.py +25 -0
- NeuralNetworks/Dependances/pytorch.py +111 -0
- NeuralNetworks/MLP/FourierFeatures.py +89 -0
- NeuralNetworks/MLP/Layers.py +31 -0
- NeuralNetworks/MLP/__init__.py +99 -0
- NeuralNetworks/MLP/inference.py +26 -0
- NeuralNetworks/Trainer/__init__.py +51 -0
- NeuralNetworks/Trainer/dynamic_learning_rate.py +79 -0
- NeuralNetworks/Trainer/sample_data.py +19 -0
- NeuralNetworks/Trainer/train.py +75 -0
- NeuralNetworks/UI/Learnings.py +45 -0
- NeuralNetworks/UI/Losses.py +45 -0
- NeuralNetworks/UI/__init__.py +9 -0
- NeuralNetworks/__init__.py +7 -111
- {neuralnetworks-0.2.0.dist-info → neuralnetworks-0.2.2.dist-info}/METADATA +70 -66
- neuralnetworks-0.2.2.dist-info/RECORD +24 -0
- NeuralNetworks/Dependances.py +0 -319
- NeuralNetworks/Latent.py +0 -51
- NeuralNetworks/MLP.py +0 -601
- neuralnetworks-0.2.0.dist-info/RECORD +0 -13
- {neuralnetworks-0.2.0.dist-info → neuralnetworks-0.2.2.dist-info}/WHEEL +0 -0
- {neuralnetworks-0.2.0.dist-info → neuralnetworks-0.2.2.dist-info}/licenses/LICENSE +0 -0
- {neuralnetworks-0.2.0.dist-info → neuralnetworks-0.2.2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# NeuralNetworks - Multi-Layer Perceptrons avec encodage Fourier
|
|
2
|
+
# Copyright (C) 2026 Alexandre Brun
|
|
3
|
+
# This program is free software: you can redistribute it and/or modify
|
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
6
|
+
# (at your option) any later version.
|
|
7
|
+
|
|
8
|
+
from ..Dependances import plt, np
|
|
9
|
+
|
|
10
|
+
def learnings(*nets):
|
|
11
|
+
|
|
12
|
+
# --- Initialisation de la figure ---
|
|
13
|
+
fig, ax1 = plt.subplots()
|
|
14
|
+
fig.set_figheight(5)
|
|
15
|
+
fig.set_figwidth(5)
|
|
16
|
+
|
|
17
|
+
# --- Définition des limites des axes ---
|
|
18
|
+
all_learnings = [[lr for lr in net.learnings] for net in nets]
|
|
19
|
+
if max(len(lst) for lst in all_learnings) == 1:
|
|
20
|
+
lenlearnings = 2
|
|
21
|
+
else:
|
|
22
|
+
lenlearnings = max(len(lst) for lst in all_learnings)
|
|
23
|
+
plt.xlim(1, lenlearnings)
|
|
24
|
+
|
|
25
|
+
# --- Tracé des courbes de pertes pour chaque réseau ---
|
|
26
|
+
for k, net in enumerate(nets):
|
|
27
|
+
ax1.plot(
|
|
28
|
+
np.arange(1, len(all_learnings[k]) + 1),
|
|
29
|
+
all_learnings[k],
|
|
30
|
+
label=net.name
|
|
31
|
+
)
|
|
32
|
+
ax1.set_xlabel("Epochs")
|
|
33
|
+
ax1.set_ylabel("Learning rate")
|
|
34
|
+
ax1.legend(loc="upper left")
|
|
35
|
+
ax1.grid(True)
|
|
36
|
+
|
|
37
|
+
plt.yscale('log', nonpositive='mask')
|
|
38
|
+
# --- Affichage ---
|
|
39
|
+
plt.legend()
|
|
40
|
+
plt.xlabel("Epoch")
|
|
41
|
+
plt.ylabel("Learning rate")
|
|
42
|
+
fig.canvas.draw_idle()
|
|
43
|
+
plt.tight_layout()
|
|
44
|
+
plt.ion() # mode interactif
|
|
45
|
+
plt.show()
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# NeuralNetworks - Multi-Layer Perceptrons avec encodage Fourier
|
|
2
|
+
# Copyright (C) 2026 Alexandre Brun
|
|
3
|
+
# This program is free software: you can redistribute it and/or modify
|
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
6
|
+
# (at your option) any later version.
|
|
7
|
+
|
|
8
|
+
from ..Dependances import plt, np
|
|
9
|
+
|
|
10
|
+
def losses(*nets):
|
|
11
|
+
|
|
12
|
+
# --- Initialisation de la figure ---
|
|
13
|
+
fig, ax1 = plt.subplots()
|
|
14
|
+
fig.set_figheight(5)
|
|
15
|
+
fig.set_figwidth(5)
|
|
16
|
+
|
|
17
|
+
# --- Définition des limites des axes ---
|
|
18
|
+
all_losses = [[loss for loss in net.losses] for net in nets]
|
|
19
|
+
if max(len(lst) for lst in all_losses) == 1:
|
|
20
|
+
lenlosses = 2
|
|
21
|
+
else:
|
|
22
|
+
lenlosses = max(len(lst) for lst in all_losses)
|
|
23
|
+
plt.xlim(1, lenlosses)
|
|
24
|
+
|
|
25
|
+
# --- Tracé des courbes de pertes pour chaque réseau ---
|
|
26
|
+
for k, net in enumerate(nets):
|
|
27
|
+
ax1.plot(
|
|
28
|
+
np.arange(1, len(all_losses[k]) + 1),
|
|
29
|
+
all_losses[k],
|
|
30
|
+
label=net.name
|
|
31
|
+
)
|
|
32
|
+
ax1.set_xlabel("Epochs")
|
|
33
|
+
ax1.set_ylabel("Loss")
|
|
34
|
+
ax1.legend(loc="upper left")
|
|
35
|
+
ax1.grid(True)
|
|
36
|
+
|
|
37
|
+
plt.yscale('log', nonpositive='mask')
|
|
38
|
+
# --- Affichage ---
|
|
39
|
+
plt.legend()
|
|
40
|
+
plt.xlabel("Epoch")
|
|
41
|
+
plt.ylabel("Résidus")
|
|
42
|
+
fig.canvas.draw_idle()
|
|
43
|
+
plt.tight_layout()
|
|
44
|
+
plt.ion() # mode interactif
|
|
45
|
+
plt.show()
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# NeuralNetworks - Multi-Layer Perceptrons avec encodage Fourier
|
|
2
|
+
# Copyright (C) 2026 Alexandre Brun
|
|
3
|
+
# This program is free software: you can redistribute it and/or modify
|
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
6
|
+
# (at your option) any later version.
|
|
7
|
+
|
|
8
|
+
from .Losses import losses
|
|
9
|
+
from .Learnings import learnings
|
NeuralNetworks/__init__.py
CHANGED
|
@@ -1,127 +1,23 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (C)
|
|
1
|
+
# NeuralNetworks - Multi-Layer Perceptrons avec encodage Fourier
|
|
2
|
+
# Copyright (C) 2026 Alexandre Brun
|
|
3
3
|
# This program is free software: you can redistribute it and/or modify
|
|
4
4
|
# it under the terms of the GNU General Public License as published by
|
|
5
5
|
# the Free Software Foundation, either version 3 of the License, or
|
|
6
6
|
# (at your option) any later version.
|
|
7
7
|
|
|
8
|
-
"""
|
|
9
|
-
NeuralNetworks Module
|
|
10
|
-
====================
|
|
11
|
-
|
|
12
|
-
Module complet pour la création, l'entraînement et la visualisation de Multi-Layer Perceptrons (MLP)
|
|
13
|
-
avec encodage optionnel Fourier, gestion automatique des pertes, compilation Torch et outils
|
|
14
|
-
de traitement d'images pour l'apprentissage sur des images RGB.
|
|
15
|
-
|
|
16
|
-
Contenu principal
|
|
17
|
-
-----------------
|
|
18
|
-
|
|
19
|
-
Classes
|
|
20
|
-
-------
|
|
21
|
-
|
|
22
|
-
MLP
|
|
23
|
-
Multi-Layer Perceptron (MLP) avec options avancées :
|
|
24
|
-
- Encodage Fourier gaussien (RFF) optionnel.
|
|
25
|
-
- Stockage automatique des pertes.
|
|
26
|
-
- Compilation Torch optionnelle pour accélérer l’inférence.
|
|
27
|
-
- Gestion flexible de l’optimiseur, de la fonction de perte et de la normalisation.
|
|
28
|
-
|
|
29
|
-
Méthodes principales :
|
|
30
|
-
- __init__(layers, learning_rate, Fourier, optimizer, criterion, normalizer, name, Iscompiled)
|
|
31
|
-
Initialise le réseau avec toutes les options.
|
|
32
|
-
- train(inputs, outputs, num_epochs, batch_size)
|
|
33
|
-
Entraîne le MLP sur des données (inputs → outputs) en utilisant AMP et mini-batchs.
|
|
34
|
-
- plot(inputs, img_array)
|
|
35
|
-
Affiche l'image originale, la prédiction du MLP et la courbe des pertes.
|
|
36
|
-
- __call__(x)
|
|
37
|
-
Applique l’encodage puis le MLP pour produire une prédiction.
|
|
38
|
-
- Create_MLP(layers)
|
|
39
|
-
Construit le MLP avec normalisation/activation et Sigmoid finale.
|
|
40
|
-
- params()
|
|
41
|
-
Retourne tous les poids du MLP (ligne par ligne) sous forme de liste de numpy.ndarray.
|
|
42
|
-
- nb_params()
|
|
43
|
-
Calcule le nombre total de poids dans le MLP.
|
|
44
|
-
- neurons()
|
|
45
|
-
Retourne la liste des biais (neurones) de toutes les couches linéaires.
|
|
46
|
-
- __repr__()
|
|
47
|
-
Affiche un schéma visuel du MLP via visualtorch et print des dimensions.
|
|
48
|
-
|
|
49
|
-
Fonctions utilitaires
|
|
50
|
-
--------------------
|
|
51
|
-
|
|
52
|
-
tensorise(obj)
|
|
53
|
-
Convertit un objet array-like ou tensor en torch.Tensor float32 sur le device actif.
|
|
54
|
-
|
|
55
|
-
list_to_cpu(cuda_tensors)
|
|
56
|
-
Copie une liste de tenseurs CUDA et les transfère sur le CPU.
|
|
57
|
-
|
|
58
|
-
rglen(list)
|
|
59
|
-
Renvoie un range correspondant aux indices d'une liste.
|
|
60
|
-
|
|
61
|
-
fPrintDoc(obj)
|
|
62
|
-
Crée une fonction lambda qui affiche le docstring d'un objet.
|
|
63
|
-
|
|
64
|
-
image_from_url(url, img_size)
|
|
65
|
-
Télécharge une image depuis une URL, la redimensionne et génère :
|
|
66
|
-
- img_array : np.ndarray (H, W, 3) pour affichage.
|
|
67
|
-
- inputs : tenseur (H*W, 2) coordonnées normalisées.
|
|
68
|
-
- outputs : tenseur (H*W, 3) valeurs RGB cibles.
|
|
69
|
-
|
|
70
|
-
Visualisation et comparaison
|
|
71
|
-
----------------------------
|
|
72
|
-
|
|
73
|
-
plot(img_array, inputs, *nets)
|
|
74
|
-
Affiche pour chaque réseau l'image reconstruite à partir des entrées.
|
|
75
|
-
|
|
76
|
-
compare(img_array, inputs, *nets)
|
|
77
|
-
Affiche pour chaque réseau l'erreur absolue entre l'image originale et la prédiction,
|
|
78
|
-
et trace également les pertes cumulées. Chaque réseau doit posséder :
|
|
79
|
-
- encoding(x) si RFF activé
|
|
80
|
-
- model() retournant un tenseur (N, 3)
|
|
81
|
-
- attribute losses
|
|
82
|
-
|
|
83
|
-
Objets et dictionnaires
|
|
84
|
-
-----------------------
|
|
85
|
-
|
|
86
|
-
Norm_list : dict
|
|
87
|
-
Contient les modules PyTorch correspondant aux fonctions de normalisation/activation
|
|
88
|
-
disponibles (ReLU, GELU, Sigmoid, Tanh, etc.)
|
|
89
|
-
|
|
90
|
-
Criterion_list : dict
|
|
91
|
-
Contient les fonctions de perte PyTorch disponibles (MSE, L1, SmoothL1, BCE, CrossEntropy, etc.)
|
|
92
|
-
|
|
93
|
-
Optim_list(self, learning_rate)
|
|
94
|
-
Retourne un dictionnaire d’optimiseurs PyTorch initialisés avec `self.model.parameters()`.
|
|
95
|
-
|
|
96
|
-
Device et configuration
|
|
97
|
-
-----------------------
|
|
98
|
-
|
|
99
|
-
device
|
|
100
|
-
Device par défaut (GPU si disponible, sinon CPU).
|
|
101
|
-
|
|
102
|
-
Paramètres matplotlib et PyTorch
|
|
103
|
-
- Style global pour fond transparent et texte gris.
|
|
104
|
-
- Optimisations CUDA activées pour TF32, matmul et convolutions.
|
|
105
|
-
- Autograd configuré pour privilégier les performances.
|
|
106
|
-
|
|
107
|
-
Notes générales
|
|
108
|
-
---------------
|
|
109
|
-
|
|
110
|
-
- Toutes les méthodes de MLP utilisent les tenseurs sur le device global (CPU ou GPU).
|
|
111
|
-
- Les images doivent être normalisées entre 0 et 1.
|
|
112
|
-
- Les fonctions interactives (plot, compare) utilisent matplotlib en mode interactif.
|
|
113
|
-
- Le module est conçu pour fonctionner dans Jupyter et scripts Python classiques.
|
|
114
|
-
"""
|
|
115
|
-
|
|
116
8
|
# Import des dépendances et utilitaires globaux (device, settings, tensorise, etc.)
|
|
117
9
|
from .Dependances import norms, crits, optims, rglen, device, pi, e, tensorise
|
|
118
10
|
|
|
119
11
|
# Modèle MLP principal + fonction d'entraînement associée
|
|
120
12
|
from .MLP import MLP, losses
|
|
121
13
|
|
|
14
|
+
from .Trainer import Trainer
|
|
15
|
+
|
|
16
|
+
from .UI import *
|
|
17
|
+
|
|
122
18
|
from .Latent import Latent
|
|
123
19
|
|
|
124
20
|
# Fonctions de chargement/preprocessing des images
|
|
125
21
|
from .tools import image, MNIST, AirfRANS
|
|
126
22
|
|
|
127
|
-
__version__ = "0.2.
|
|
23
|
+
__version__ = "0.2.2"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: NeuralNetworks
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Multi-Layer Perceptrons with multi-Fourier encoding, variable learning rate, visualization and PyTorch compilation
|
|
5
5
|
Author-email: Alexandre Brun <alexandre51160@gmail.com>
|
|
6
6
|
License: GPL-3.0-or-later
|
|
@@ -40,92 +40,101 @@ de traitement d'images pour l'apprentissage sur des images RGB.
|
|
|
40
40
|
|
|
41
41
|
### Classes
|
|
42
42
|
|
|
43
|
-
#### MLP
|
|
43
|
+
#### `MLP`
|
|
44
44
|
|
|
45
|
-
Multi-Layer Perceptron (MLP) avec
|
|
45
|
+
Multi-Layer Perceptron (MLP) avec encodage optionnel Fourier (RFF),
|
|
46
|
+
suivi automatique des pertes, visualisation et compilation PyTorch.
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
- Stockage automatique des pertes
|
|
49
|
-
- Compilation Torch optionnelle pour accélérer l’inférence
|
|
50
|
-
- Gestion flexible de l’optimiseur, de la fonction de perte et de la normalisation
|
|
48
|
+
Cette classe fournit :
|
|
51
49
|
|
|
52
|
-
|
|
50
|
+
- Un MLP entièrement configurable (dimensions, normalisation, activation)
|
|
51
|
+
- Option d'encodage Fourier (Random Fourier Features) sur les entrées
|
|
52
|
+
- Méthodes pour entraîner le réseau avec mini-batchs et AMP (Automatic Mixed Precision)
|
|
53
|
+
- Visualisation de l'architecture via visualtorch
|
|
54
|
+
- Suivi et affichage de la perte d'entraînement
|
|
55
|
+
- Accès aux poids, biais et nombre de paramètres
|
|
53
56
|
|
|
54
|
-
|
|
55
|
-
Initialise le réseau avec toutes les options.
|
|
56
|
-
|
|
57
|
-
Les valeurs possibles de `optim` sont disponibles avec `optims()`
|
|
58
|
-
Les valeurs possibles de `crit` sont disponibles avec `crits()`
|
|
59
|
-
Les valeurs possibles de `norm` sont disponibles avec `norms()`
|
|
57
|
+
---
|
|
60
58
|
|
|
61
|
-
|
|
62
|
-
Entraîne le MLP sur des données (`inputs → outputs`) en utilisant AMP et mini-batchs.
|
|
59
|
+
##### Parameters
|
|
63
60
|
|
|
64
|
-
|
|
65
|
-
|
|
61
|
+
| Parameter | Type | Optional | Description |
|
|
62
|
+
|----------------------|---------------|----------|-----------------------------------------------------------------------------------------------|
|
|
63
|
+
| `input_size` | int | Yes | Taille des données en entrée au réseau. Default: `1` |
|
|
64
|
+
| `output_size` | int | Yes | Taille des données en sortie au réseau. Default: `1` |
|
|
65
|
+
| `hidden_layers` | list[int] | Yes | Dimensions successives des couches intermédiaires du réseau. Default: `[1]` |
|
|
66
|
+
| `sigmas` | list[float] | Yes | Liste de sigma pour encodages RFF. Si None : passthrough. Default: `None` |
|
|
67
|
+
| `fourier_input_size` | int | Yes | WIP. Default: `2` |
|
|
68
|
+
| `nb_fourier` | int | Yes | Nombre de fréquences utilisées pour les Fourier Features. Default: `8` |
|
|
69
|
+
| `norm` | str | Yes | Type de normalisation / activation pour les couches cachées (ex: `"Relu"`). Default: `"Relu"` |
|
|
70
|
+
| `name` | str | Yes | Nom du réseau pour identification ou affichage. Default: `"Net"` |
|
|
66
71
|
|
|
67
|
-
|
|
68
|
-
Retourne tous les poids du MLP (ligne par ligne) sous forme de liste de `numpy.ndarray`.
|
|
72
|
+
---
|
|
69
73
|
|
|
70
|
-
|
|
71
|
-
Calcule le nombre total de poids dans le MLP.
|
|
74
|
+
##### Attributes
|
|
72
75
|
|
|
73
|
-
- `
|
|
74
|
-
|
|
76
|
+
- `losses : list[float]` — Historique des pertes cumulées lors de l'entraînement
|
|
77
|
+
- `learnings : list[float]` — Historique des taux d'apprentissage utilisées lors de l'entraînement
|
|
78
|
+
- `model : nn.Sequential` — MLP complet construit dynamiquement
|
|
79
|
+
- `name : str` — Nom du réseau
|
|
75
80
|
|
|
76
81
|
---
|
|
77
82
|
|
|
78
|
-
|
|
83
|
+
#### `Trainer`
|
|
79
84
|
|
|
80
|
-
|
|
81
|
-
Convertit un objet array-like ou tensor en `torch.Tensor` float32 sur le device actif.
|
|
85
|
+
---
|
|
82
86
|
|
|
83
|
-
|
|
84
|
-
Renvoie un range correspondant aux indices d'une liste.
|
|
87
|
+
##### Parameters
|
|
85
88
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
| Parameter | Type | Optional | Description |
|
|
90
|
+
|--------------|-----------------|----------|-----------------------------------------------------------------------------------------------------------------|
|
|
91
|
+
| `*nets` | *MLP | No | Réseaux pour lesquels le trainer va entrainer. |
|
|
92
|
+
| `inputs` | np.array(float) | No | Données en entrée au réseau. |
|
|
93
|
+
| `outputs` | np.array(float) | No | Données en sortie au réseau. |
|
|
94
|
+
| `test_size` | float | Yes | Proportion des données à utiliser pendant l'entrainement. Si None : utilise toutes les données. Default: `None` |
|
|
95
|
+
| `optim` | str | Yes | Nom de l’optimiseur à utiliser (doit exister dans `optims()`). Default: `"Adam"` |
|
|
96
|
+
| `init_lr` | float | Yes | Taux d’apprentissage initial pour l’optimiseur. Default: `1e-3` |
|
|
97
|
+
| `crit` | str | Yes | Fonction de perte à utiliser (doit exister dans `crits()`). Default: `"MSE"` |
|
|
98
|
+
| `batch_size` | float | Yes | Taille des minibatchs. Default: `1024` |
|
|
91
99
|
|
|
92
100
|
---
|
|
93
101
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
- `plot(img_array, inputs, *nets)`
|
|
97
|
-
Affiche pour chaque réseau l'image reconstruite à partir des entrées.
|
|
102
|
+
##### `Trainer.train`
|
|
98
103
|
|
|
99
|
-
|
|
100
|
-
Affiche pour chaque réseau l'erreur absolue entre l'image originale et la prédiction,
|
|
101
|
-
et trace également les pertes cumulées. Chaque réseau doit posséder :
|
|
104
|
+
Lancement d'un entrainement avec le trainer définit
|
|
102
105
|
|
|
106
|
+
| Parameter | Type | Optional | Description |
|
|
107
|
+
|-----------------|---------|----------|-----------------------------------------|
|
|
108
|
+
| `num_epochs` | int | Yes | Nombres d'itérations à effectuer. |
|
|
109
|
+
| `activate_tqdm` | boolean | Yes | Utilisation d'une barre de progression. |
|
|
110
|
+
|
|
103
111
|
---
|
|
104
112
|
|
|
105
|
-
###
|
|
113
|
+
### Dictionnaires
|
|
106
114
|
|
|
107
|
-
####
|
|
115
|
+
#### `norms()`
|
|
108
116
|
|
|
109
|
-
| **Valeurs** | **Module PyTorch**
|
|
110
|
-
|
|
111
|
-
| **"
|
|
112
|
-
| **"
|
|
113
|
-
| **"ELU"** | `nn.ELU()`
|
|
114
|
-
| **"SELU"** | `nn.SELU()`
|
|
115
|
-
| **"GELU"** | `nn.GELU()`
|
|
116
|
-
| **"
|
|
117
|
-
| **"
|
|
118
|
-
| **"
|
|
119
|
-
| **"
|
|
120
|
-
| **"
|
|
117
|
+
| **Valeurs** | **Module PyTorch** | **Description** |
|
|
118
|
+
|---------------------|--------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
|
|
119
|
+
| **"ReLU"** | [`nn.ReLU()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.ReLU.html) | Fonction d'activation ReLU classique (Rectified Linear Unit). |
|
|
120
|
+
| **"LeakyReLU"** | [`nn.LeakyReLU()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.LeakyReLU.html) | ReLU avec un petit coefficient pour les valeurs négatives (paramètre `negative_slope`). |
|
|
121
|
+
| **"ELU"** | [`nn.ELU()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.ELU.html) | Fonction d'activation ELU (Exponential Linear Unit), qui a une meilleure gestion des valeurs négatives. |
|
|
122
|
+
| **"SELU"** | [`nn.SELU()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.SELU.html) | SELU (Scaled Exponential Linear Unit), une version améliorée de l'ELU pour des réseaux auto-normalisants. |
|
|
123
|
+
| **"GELU"** | [`nn.GELU()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.GELU.html) | GELU (Gaussian Error Linear Unit), une activation probabiliste basée sur une fonction gaussienne. |
|
|
124
|
+
| **"Mish"** | [`nn.Mish()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.Mish.html) | ReLU différentiable en tout points avec passage négatif. |
|
|
125
|
+
| **"Softplus"** | [`nn.Softplus()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.Softplus.html) | Fonction d'activation qui approxime ReLU mais de manière lissée. |
|
|
126
|
+
| **"Sigmoid"** | [`nn.Sigmoid()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.Sigmoid.html) | Fonction d'activation Sigmoid, qui produit une sortie entre 0 et 1. |
|
|
127
|
+
| **"Tanh"** | [`nn.Tanh()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.Tanh.html) | Fonction d'activation Tanh, avec une sortie dans l'intervalle [-1, 1]. |
|
|
128
|
+
| **"Hardtanh"** | [`nn.Hardtanh()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.Hardtanh.html) | Variante de Tanh, avec des sorties limitées entre une plage spécifiée. |
|
|
129
|
+
| **"Softsign"** | [`nn.Softsign()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.Softsign.html) | Fonction d'activation similaire à Tanh mais plus souple, avec des valeurs dans [-1, 1]. |
|
|
121
130
|
|
|
122
131
|
---
|
|
123
132
|
|
|
124
|
-
####
|
|
133
|
+
#### `crits()`
|
|
125
134
|
|
|
126
135
|
| **Valeurs** | **Module PyTorch** | **Description** |
|
|
127
136
|
|--------------------------------|-------------------------------------|----------------------------------------------------------------------------------------------------------------------------|
|
|
128
|
-
| **"MSE"** | `nn.MSELoss()
|
|
137
|
+
| **"MSE"** | [`nn.MSELoss`](https://pytorch.org/docs/stable/generated/torch.nn.MSELoss.html) | Mean Squared Error Loss, utilisée pour les régressions. |
|
|
129
138
|
| **"L1"** | `nn.L1Loss()` | L1 Loss (erreur absolue), souvent utilisée pour la régularisation. |
|
|
130
139
|
| **"SmoothL1"** | `nn.SmoothL1Loss()` | Smooth L1 Loss, une combinaison de L1 et de MSE, moins sensible aux outliers. |
|
|
131
140
|
| **"Huber"** | `nn.HuberLoss()` | Fonction de perte Huber, une version lissée de L1 et MSE, moins affectée par les grands écarts. |
|
|
@@ -136,7 +145,7 @@ Multi-Layer Perceptron (MLP) avec options avancées :
|
|
|
136
145
|
|
|
137
146
|
---
|
|
138
147
|
|
|
139
|
-
####
|
|
148
|
+
#### `optims()`
|
|
140
149
|
|
|
141
150
|
| **Valeurs** | **Module PyTorch** | **Description** |
|
|
142
151
|
|---------------------|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|
|
|
@@ -154,7 +163,9 @@ Multi-Layer Perceptron (MLP) avec options avancées :
|
|
|
154
163
|
|
|
155
164
|
---
|
|
156
165
|
|
|
157
|
-
###
|
|
166
|
+
### `device`
|
|
167
|
+
|
|
168
|
+
variable principale d'allocation des performances
|
|
158
169
|
|
|
159
170
|
#### **Apple Silicon (macOS)**
|
|
160
171
|
- Si le système d'exploitation est macOS (nommé `darwin` dans `platform.system()`), la fonction vérifie si l'accélérateur **Metal Performance Shaders** (MPS) est disponible sur l'appareil.
|
|
@@ -181,10 +192,3 @@ Multi-Layer Perceptron (MLP) avec options avancées :
|
|
|
181
192
|
- Autograd configuré pour privilégier les performances
|
|
182
193
|
|
|
183
194
|
---
|
|
184
|
-
|
|
185
|
-
### Notes générales
|
|
186
|
-
|
|
187
|
-
- Toutes les méthodes de MLP utilisent les tenseurs sur le device global (CPU ou GPU)
|
|
188
|
-
- Les images doivent être normalisées entre 0 et 1
|
|
189
|
-
- Les fonctions interactives (`plot`, `compare`) utilisent matplotlib en mode interactif
|
|
190
|
-
- Le module est conçu pour fonctionner dans Jupyter et scripts Python classiques
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
NeuralNetworks/__init__.py,sha256=AWRytyL2O4sZQetW9JB1XqmWtJMK1X9b50Z7WMLD1nY,798
|
|
2
|
+
NeuralNetworks/Dependances/__init__.py,sha256=qEpDbSD8cCq-E5XVisNUVf3kZOYopDnQWToyRefPgKE,1227
|
|
3
|
+
NeuralNetworks/Dependances/matplot.py,sha256=elS8u6DZHYP-8mHEpYNOw3jDzhCAWTld9tm3OAD46zw,957
|
|
4
|
+
NeuralNetworks/Dependances/pytorch.py,sha256=RQlSV3-8uHAoEgK0FBae7O4Mdug7h_MY--sN1fK59qw,3329
|
|
5
|
+
NeuralNetworks/MLP/FourierFeatures.py,sha256=klgRM1HK09oA2NRMDxQMjJJ-WoUd5hV1ip5hHe9rHjI,3250
|
|
6
|
+
NeuralNetworks/MLP/Layers.py,sha256=WAksXsiMxaClyYTxPhlyQbwwj9qTtXs3EWCO1RqjUHY,945
|
|
7
|
+
NeuralNetworks/MLP/__init__.py,sha256=cEW_M5lZPiuozlItNIAYGhJ_NauwUnhGurcY4r_gh-A,3067
|
|
8
|
+
NeuralNetworks/MLP/inference.py,sha256=9aL7pUx1LTVvrc6UYHX049UjODTgHY6cweFcp2gequQ,853
|
|
9
|
+
NeuralNetworks/Trainer/__init__.py,sha256=v0qKqx9XkYWkuouNNy0jTHQ_cZqYhFj98qrwSXlDXy0,1711
|
|
10
|
+
NeuralNetworks/Trainer/dynamic_learning_rate.py,sha256=1JAD-k0cjdL_71zGeeCUFOa61H4PzFITDjZ2nK0TzXU,2340
|
|
11
|
+
NeuralNetworks/Trainer/sample_data.py,sha256=7waC9colb7DXU4yKMcgcCnPG3Guv-isipcgVHJPPCNE,673
|
|
12
|
+
NeuralNetworks/Trainer/train.py,sha256=NAbHFKg4hl96OXq_i63lcRYwrPHiuKu7ihexakhpgDY,3182
|
|
13
|
+
NeuralNetworks/UI/Learnings.py,sha256=4TBR5pcjyoBeL7eikNKM6xn25jnqL-mWT7hbrt9q-Gw,1418
|
|
14
|
+
NeuralNetworks/UI/Losses.py,sha256=Tu5xuDiutR9a4xcZKpyWN_tzSDu3_fImEf8FbAEehio,1378
|
|
15
|
+
NeuralNetworks/UI/__init__.py,sha256=L96xwQZJ-HoqqOGxaheosiDKHR3mRopuXkif--rO1J4,409
|
|
16
|
+
NeuralNetworks/tools/AirfRANS.py,sha256=UaCT3cuMz4_SPtgk9a7ZGB12l8dnDHjoAkD2ovLrAWk,1412
|
|
17
|
+
NeuralNetworks/tools/MNIST.py,sha256=1lcB-dmlvpcxvQmjjHW2d5wR84uWB5rzYP6VC6CMoN4,4333
|
|
18
|
+
NeuralNetworks/tools/VKI-LS59.py,sha256=OZqrJvR5QDcPEtuL7H0UoxpFwkjmWmOmfVWoV1d8fIs,354
|
|
19
|
+
NeuralNetworks/tools/image.py,sha256=dtohmcOtGJ0rK3uXxy9O2zhhTE_DZDoZKmUSnBNkv0Q,8952
|
|
20
|
+
neuralnetworks-0.2.2.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
21
|
+
neuralnetworks-0.2.2.dist-info/METADATA,sha256=x5PCHM2idxDoVvJBqOfH21bzNZbhwwojuPPEuStgQb0,15176
|
|
22
|
+
neuralnetworks-0.2.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
23
|
+
neuralnetworks-0.2.2.dist-info/top_level.txt,sha256=h18nmC1BX7avyAAwKh0OQWezxgXmOpmVtbFq-8Mcbms,15
|
|
24
|
+
neuralnetworks-0.2.2.dist-info/RECORD,,
|