NeuralNetworks 0.2.3__py3-none-any.whl → 0.2.4__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/MLP/__init__.py +1 -1
- NeuralNetworks/__init__.py +1 -1
- {neuralnetworks-0.2.3.dist-info → neuralnetworks-0.2.4.dist-info}/METADATA +62 -41
- {neuralnetworks-0.2.3.dist-info → neuralnetworks-0.2.4.dist-info}/RECORD +7 -7
- {neuralnetworks-0.2.3.dist-info → neuralnetworks-0.2.4.dist-info}/WHEEL +0 -0
- {neuralnetworks-0.2.3.dist-info → neuralnetworks-0.2.4.dist-info}/licenses/LICENSE +0 -0
- {neuralnetworks-0.2.3.dist-info → neuralnetworks-0.2.4.dist-info}/top_level.txt +0 -0
NeuralNetworks/MLP/__init__.py
CHANGED
|
@@ -54,7 +54,7 @@ class MLP (nn.Module):
|
|
|
54
54
|
# --- Activation ---
|
|
55
55
|
self.norm = norm_list.get (norm)
|
|
56
56
|
if self.norm is None:
|
|
57
|
-
print (f"Warning: '{norm}' not recognized, falling back to '
|
|
57
|
+
print (f"Warning: '{norm}' not recognized, falling back to 'Relu'")
|
|
58
58
|
self.norm = norm_list.get ("Relu")
|
|
59
59
|
|
|
60
60
|
# --- Attributs ---
|
NeuralNetworks/__init__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: NeuralNetworks
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
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
|
|
@@ -35,11 +35,9 @@ avec encodage optionnel [Fourier Features](https://en.wikipedia.org/wiki/Random_
|
|
|
35
35
|
|
|
36
36
|
---
|
|
37
37
|
|
|
38
|
-
##
|
|
38
|
+
## **Classes**
|
|
39
39
|
|
|
40
|
-
###
|
|
41
|
-
|
|
42
|
-
#### `MLP` {#MLP}
|
|
40
|
+
### **MLP**
|
|
43
41
|
|
|
44
42
|
Cette classe fournit :
|
|
45
43
|
|
|
@@ -48,7 +46,7 @@ Cette classe fournit :
|
|
|
48
46
|
|
|
49
47
|
---
|
|
50
48
|
|
|
51
|
-
|
|
49
|
+
#### **Paramètres**
|
|
52
50
|
|
|
53
51
|
| **Paramètres** | **Type** | **Optionnel** | **Description** |
|
|
54
52
|
|----------------------|--------------------------------------------------------------------------------------------------|---------------|--------------------------------------------------------------------------------|
|
|
@@ -58,38 +56,45 @@ Cette classe fournit :
|
|
|
58
56
|
| `sigmas` | [`list[float]`](https://docs.python.org/3/library/stdtypes.html#sequence-types-list-tuple-range) | Oui | Liste de sigma pour encodages RFF. Si None : passthrough. Default: `None` |
|
|
59
57
|
| `fourier_input_size` | [`int`](https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex) | Oui | WIP. Default: `2` |
|
|
60
58
|
| `nb_fourier` | [`int`](https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex) | Oui | Nombre de fréquences utilisées pour les Fourier Features. Default: `8` |
|
|
61
|
-
| `norm` | [`norm`](#norms)
|
|
59
|
+
| `norm` | [`norm`](#norms-norms) | Oui | Type de normalisation / activation pour les couches cachées. Default: `'Relu'` |
|
|
62
60
|
| `name` | [`str`](https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str) | Oui | Nom du réseau pour identification ou affichage. Default: `'Net'` |
|
|
63
61
|
|
|
64
|
-
|
|
62
|
+
#### **Attributs**
|
|
65
63
|
|
|
66
|
-
- `losses : list[float]`
|
|
64
|
+
- `losses : list[float]` — Historique des pertes cumulées lors de l'entraînement
|
|
67
65
|
- `learnings : list[float]` — Historique des taux d'apprentissage utilisées lors de l'entraînement
|
|
68
|
-
- `model : nn.Sequential`
|
|
69
|
-
- `name : str`
|
|
66
|
+
- `model : nn.Sequential` — MLP complet construit dynamiquement
|
|
67
|
+
- `name : str` — Nom du réseau
|
|
68
|
+
|
|
69
|
+
| **Attributs** | **Type** | **Description** |
|
|
70
|
+
|---------------|--------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------|
|
|
71
|
+
| `losses` | [`list[float]`](https://docs.python.org/3/library/stdtypes.html#sequence-types-list-tuple-range) | Historique des pertes cumulées lors de l'entraînement |
|
|
72
|
+
| `learnings` | [`list[float]`](https://docs.python.org/3/library/stdtypes.html#sequence-types-list-tuple-range) | Historique des taux d'apprentissage utilisées lors de l'entraînement |
|
|
73
|
+
| `model` | [`nn.Sequential`](https://docs.pytorch.org/docs/stable/generated/torch.nn.Sequential.html) | MLP complet construit dynamiquement |
|
|
74
|
+
| `name` | [`str`](https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str) | Nom du réseau |
|
|
70
75
|
|
|
71
76
|
---
|
|
72
77
|
|
|
73
|
-
|
|
78
|
+
### **Trainer**
|
|
74
79
|
|
|
75
80
|
Cette classe fournit :
|
|
76
81
|
|
|
77
82
|
- Méthode pour entraîner des réseaux avec mini-batchs et [Automatic Mixed Precision](https://docs.pytorch.org/tutorials/recipes/recipes/amp_recipe.html)
|
|
78
83
|
|
|
79
|
-
|
|
84
|
+
#### **Paramètres**
|
|
80
85
|
|
|
81
86
|
| **Paramètres** | **Type** | **Optionnel** | **Description** |
|
|
82
87
|
|----------------|-------------------------------------------------------------------------------------------------|---------------|-----------------------------------------------------------------------------------------------------------------|
|
|
83
|
-
| `*nets` | [`MLP`](#
|
|
88
|
+
| `*nets` | [`MLP`](#mlp-mlp) | Non | Réseaux pour lesquels le trainer va entrainer. |
|
|
84
89
|
| `inputs` | [`numpy.array(list[float])`](https://numpy.org/doc/stable/reference/generated/numpy.array.html) | Non | Données en entrée au réseau. |
|
|
85
90
|
| `outputs` | [`numpy.array(list[float])`](https://numpy.org/doc/stable/reference/generated/numpy.array.html) | Non | Données en sortie au réseau. |
|
|
86
91
|
| `test_size` | [`float`](https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex) | Oui | Proportion des données à utiliser pendant l'entrainement. Si None : utilise toutes les données. Default: `None` |
|
|
87
|
-
| `optim` | [`optim`](#optims)
|
|
92
|
+
| `optim` | [`optim`](#optims-optims) | Oui | Nom de l’optimiseur à utiliser (doit exister dans `optims()`). Default: `'Adam'` |
|
|
88
93
|
| `init_lr` | [`float`](https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex) | Oui | Taux d’apprentissage initial pour l’optimiseur. Default: `1e-3` |
|
|
89
|
-
| `crit` | [`crit`](#crits)
|
|
94
|
+
| `crit` | [`crit`](#crits-crits) | Oui | Fonction de perte à utiliser (doit exister dans `crits()`). Default: `MSE'` |
|
|
90
95
|
| `batch_size` | [`int`](https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex) | Oui | Taille des minibatchs. Default: `1024` |
|
|
91
96
|
|
|
92
|
-
|
|
97
|
+
#### **Trainer.train**
|
|
93
98
|
|
|
94
99
|
Lancement d'un entrainement avec le trainer définit
|
|
95
100
|
|
|
@@ -100,9 +105,21 @@ Lancement d'un entrainement avec le trainer définit
|
|
|
100
105
|
|
|
101
106
|
---
|
|
102
107
|
|
|
103
|
-
|
|
108
|
+
## **Méthodes**
|
|
109
|
+
|
|
110
|
+
### **losses**
|
|
111
|
+
|
|
112
|
+
Affiche les résidus en fonction des époques d'entrainement des réseaux.
|
|
113
|
+
|
|
114
|
+
### **learnings**
|
|
115
|
+
|
|
116
|
+
Affiche les taux d'apprentissage en fonction des époques d'entrainement des réseaux.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## **Dictionnaires**
|
|
104
121
|
|
|
105
|
-
|
|
122
|
+
### **norms**
|
|
106
123
|
|
|
107
124
|
| **Valeurs** | **Module PyTorch** | **Description** |
|
|
108
125
|
|---------------|--------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
|
|
@@ -118,20 +135,9 @@ Lancement d'un entrainement avec le trainer définit
|
|
|
118
135
|
| `'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. |
|
|
119
136
|
| `'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]. |
|
|
120
137
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
| **Valeurs** | **Module PyTorch** | **Description** |
|
|
124
|
-
|--------------------------|--------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
|
|
125
|
-
| `'MSE'` | [`nn.MSELoss`](https://pytorch.org/docs/stable/generated/torch.nn.MSELoss.html) | Perte utilisée pour les régressions. |
|
|
126
|
-
| `'L1'` | [`nn.L1Loss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.L1Loss.html) | Perte utilisée pour la régularisation. |
|
|
127
|
-
| `'SmoothL1'` | [`nn.SmoothL1Loss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.SmoothL1Loss.html) | Perte moins sensible aux outliers. |
|
|
128
|
-
| `'Huber'` | [`nn.HuberLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.HuberLoss.html) | Perte moins affectée par les grands écarts. |
|
|
129
|
-
| `'CrossEntropy'` | [`nn.CrossEntropyLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html) | Perte utilisée pour les problèmes de classification multi-classes. |
|
|
130
|
-
| `'KLDiv'` | [`nn.KLDivLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.KLDivLoss.html) | Perte utilisée pour des modèles probabilistes. |
|
|
131
|
-
| `'PoissonNLL'` | [`nn.PoissonNLLLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.PoissonNLLLoss.html) | Perte utilisée pour la modélisation de comptages. |
|
|
132
|
-
| `'MultiLabelSoftMargin'` | [`nn.MultiLabelSoftMarginLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.MultiLabelSoftMarginLoss.html) | Perte utilisée pour les problèmes de classification multi-étiquettes. |
|
|
138
|
+
---
|
|
133
139
|
|
|
134
|
-
|
|
140
|
+
### **optims**
|
|
135
141
|
|
|
136
142
|
| **Valeurs** | **Module PyTorch** | **Description** |
|
|
137
143
|
|---------------|--------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|
|
|
@@ -146,27 +152,42 @@ Lancement d'un entrainement avec le trainer définit
|
|
|
146
152
|
| `'RMSprop'` | [`optim.RMSprop()`](https://docs.pytorch.org/docs/stable/generated/torch.optim.RMSprop.html) | Optimiseur utilisant une moyenne mobile des carrés des gradients pour réduire les oscillations. |
|
|
147
153
|
| `'Rprop'` | [`optim.Rprop()`](https://docs.pytorch.org/docs/stable/generated/torch.optim.Rprop.html) | Optimiseur basé sur les mises à jour des poids indépendantes des gradients. |
|
|
148
154
|
| `'SGD'` | [`optim.SGD()`](https://docs.pytorch.org/docs/stable/generated/torch.optim.SGD.html) | Optimiseur souvent utilisée avec un taux d'apprentissage constant ou ajusté. |
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
### **crits**
|
|
159
|
+
|
|
160
|
+
| **Valeurs** | **Module PyTorch** | **Description** |
|
|
161
|
+
|--------------------------|--------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
|
|
162
|
+
| `'MSE'` | [`nn.MSELoss`](https://pytorch.org/docs/stable/generated/torch.nn.MSELoss.html) | Perte utilisée pour les régressions. |
|
|
163
|
+
| `'L1'` | [`nn.L1Loss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.L1Loss.html) | Perte utilisée pour la régularisation. |
|
|
164
|
+
| `'SmoothL1'` | [`nn.SmoothL1Loss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.SmoothL1Loss.html) | Perte moins sensible aux outliers. |
|
|
165
|
+
| `'Huber'` | [`nn.HuberLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.HuberLoss.html) | Perte moins affectée par les grands écarts. |
|
|
166
|
+
| `'CrossEntropy'` | [`nn.CrossEntropyLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html) | Perte utilisée pour les problèmes de classification multi-classes. |
|
|
167
|
+
| `'KLDiv'` | [`nn.KLDivLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.KLDivLoss.html) | Perte utilisée pour des modèles probabilistes. |
|
|
168
|
+
| `'PoissonNLL'` | [`nn.PoissonNLLLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.PoissonNLLLoss.html) | Perte utilisée pour la modélisation de comptages. |
|
|
169
|
+
| `'MultiLabelSoftMargin'` | [`nn.MultiLabelSoftMarginLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.MultiLabelSoftMarginLoss.html) | Perte utilisée pour les problèmes de classification multi-étiquettes. |
|
|
149
170
|
|
|
150
171
|
---
|
|
151
172
|
|
|
152
|
-
|
|
173
|
+
## **device**
|
|
153
174
|
|
|
154
175
|
variable principale d'allocation des performances
|
|
155
176
|
|
|
156
|
-
|
|
177
|
+
### **Apple Silicon (macOS)**
|
|
157
178
|
- 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.
|
|
158
|
-
- Si MPS est disponible (`torch.backends.mps.is_available()`), l'appareil cible sera défini sur `'
|
|
179
|
+
- Si MPS est disponible (`torch.backends.mps.is_available()`), l'appareil cible sera défini sur `'mps'` (c'est un équivalent de CUDA pour les appareils Apple Silicon).
|
|
159
180
|
|
|
160
|
-
|
|
181
|
+
### **Windows**
|
|
161
182
|
- Si le système d'exploitation est Windows, la fonction vérifie d'abord si **CUDA** (NVIDIA) est disponible avec `torch.cuda.is_available()`. Si c'est le cas, le périphérique sera défini sur **CUDA**.
|
|
162
183
|
|
|
163
|
-
|
|
184
|
+
### **Linux**
|
|
164
185
|
- Si le système d'exploitation est Linux, plusieurs vérifications sont effectuées :
|
|
165
|
-
1. **CUDA** (NVIDIA) : Si `torch.cuda.is_available()` renvoie `True`, le périphérique sera défini sur `'
|
|
166
|
-
2. **ROCm** (AMD) : Si le système supporte **ROCm** via `torch.backends.hip.is_available()`, l'appareil sera défini sur `'
|
|
186
|
+
1. **CUDA** (NVIDIA) : Si `torch.cuda.is_available()` renvoie `True`, le périphérique sera défini sur `'cuda'`.
|
|
187
|
+
2. **ROCm** (AMD) : Si le système supporte **ROCm** via `torch.backends.hip.is_available()`, l'appareil sera défini sur `'cuda'` (ROCm est utilisé pour les cartes AMD dans le cadre de l'API CUDA).
|
|
167
188
|
3. **Intel oneAPI / XPU** : Si le système prend en charge **Intel oneAPI** ou **XPU** via `torch.xpu.is_available()`, le périphérique sera défini sur **XPU**.
|
|
168
189
|
|
|
169
|
-
|
|
170
|
-
- Si aucune des conditions ci-dessus n'est remplie, la fonction retourne `'
|
|
190
|
+
### **Système non reconnu**
|
|
191
|
+
- Si aucune des conditions ci-dessus n'est remplie, la fonction retourne `'cpu'` comme périphérique par défaut.
|
|
171
192
|
|
|
172
193
|
---
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
NeuralNetworks/__init__.py,sha256=
|
|
1
|
+
NeuralNetworks/__init__.py,sha256=49vh80aql73P7KUOTmvUBlx1hDgEkJr0XqB2zVi6iaI,668
|
|
2
2
|
NeuralNetworks/Dependances/__init__.py,sha256=qEpDbSD8cCq-E5XVisNUVf3kZOYopDnQWToyRefPgKE,1227
|
|
3
3
|
NeuralNetworks/Dependances/matplot.py,sha256=elS8u6DZHYP-8mHEpYNOw3jDzhCAWTld9tm3OAD46zw,957
|
|
4
4
|
NeuralNetworks/Dependances/pytorch.py,sha256=RQlSV3-8uHAoEgK0FBae7O4Mdug7h_MY--sN1fK59qw,3329
|
|
5
5
|
NeuralNetworks/MLP/FourierFeatures.py,sha256=klgRM1HK09oA2NRMDxQMjJJ-WoUd5hV1ip5hHe9rHjI,3250
|
|
6
6
|
NeuralNetworks/MLP/Layers.py,sha256=WAksXsiMxaClyYTxPhlyQbwwj9qTtXs3EWCO1RqjUHY,945
|
|
7
|
-
NeuralNetworks/MLP/__init__.py,sha256=
|
|
7
|
+
NeuralNetworks/MLP/__init__.py,sha256=v7h4Vcmay0_A83spe67HhT7TQ7cSKQX4eVVBJhzEWfk,3052
|
|
8
8
|
NeuralNetworks/MLP/inference.py,sha256=9aL7pUx1LTVvrc6UYHX049UjODTgHY6cweFcp2gequQ,853
|
|
9
9
|
NeuralNetworks/Trainer/__init__.py,sha256=v0qKqx9XkYWkuouNNy0jTHQ_cZqYhFj98qrwSXlDXy0,1711
|
|
10
10
|
NeuralNetworks/Trainer/dynamic_learning_rate.py,sha256=1JAD-k0cjdL_71zGeeCUFOa61H4PzFITDjZ2nK0TzXU,2340
|
|
@@ -13,8 +13,8 @@ NeuralNetworks/Trainer/train.py,sha256=NAbHFKg4hl96OXq_i63lcRYwrPHiuKu7ihexakhpg
|
|
|
13
13
|
NeuralNetworks/UI/Learnings.py,sha256=4TBR5pcjyoBeL7eikNKM6xn25jnqL-mWT7hbrt9q-Gw,1418
|
|
14
14
|
NeuralNetworks/UI/Losses.py,sha256=Tu5xuDiutR9a4xcZKpyWN_tzSDu3_fImEf8FbAEehio,1378
|
|
15
15
|
NeuralNetworks/UI/__init__.py,sha256=L96xwQZJ-HoqqOGxaheosiDKHR3mRopuXkif--rO1J4,409
|
|
16
|
-
neuralnetworks-0.2.
|
|
17
|
-
neuralnetworks-0.2.
|
|
18
|
-
neuralnetworks-0.2.
|
|
19
|
-
neuralnetworks-0.2.
|
|
20
|
-
neuralnetworks-0.2.
|
|
16
|
+
neuralnetworks-0.2.4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
17
|
+
neuralnetworks-0.2.4.dist-info/METADATA,sha256=A7K_YC5uf7CNOShPHP3dx6e4RD7_bnl47kD-1YmQiI0,18738
|
|
18
|
+
neuralnetworks-0.2.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
19
|
+
neuralnetworks-0.2.4.dist-info/top_level.txt,sha256=h18nmC1BX7avyAAwKh0OQWezxgXmOpmVtbFq-8Mcbms,15
|
|
20
|
+
neuralnetworks-0.2.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|