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.
@@ -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 'm is'")
57
+ print (f"Warning: '{norm}' not recognized, falling back to 'Relu'")
58
58
  self.norm = norm_list.get ("Relu")
59
59
 
60
60
  # --- Attributs ---
@@ -15,4 +15,4 @@ from .Trainer import Trainer
15
15
 
16
16
  from .UI import *
17
17
 
18
- __version__ = "0.2.3"
18
+ __version__ = "0.2.4"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: NeuralNetworks
3
- Version: 0.2.3
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
- ## Contenu principal
38
+ ## **Classes**
39
39
 
40
- ### Classes
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
- ##### Paramètres
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) | Oui | Type de normalisation / activation pour les couches cachées. Default: `'Relu'` |
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
- ##### Attributs
62
+ #### **Attributs**
65
63
 
66
- - `losses : list[float]` — Historique des pertes cumulées lors de l'entraînement
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` — MLP complet construit dynamiquement
69
- - `name : str` — Nom du réseau
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
- #### `Trainer`
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
- ##### Paramètres
84
+ #### **Paramètres**
80
85
 
81
86
  | **Paramètres** | **Type** | **Optionnel** | **Description** |
82
87
  |----------------|-------------------------------------------------------------------------------------------------|---------------|-----------------------------------------------------------------------------------------------------------------|
83
- | `*nets` | [`MLP`](#MLP) | Non | Réseaux pour lesquels le trainer va entrainer. |
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) | Oui | Nom de l’optimiseur à utiliser (doit exister dans `optims()`). Default: `'Adam'` |
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) | Oui | Fonction de perte à utiliser (doit exister dans `crits()`). Default: `MSE'` |
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
- ##### `Trainer.train`
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
- ### Dictionnaires
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
- #### `norms()` {#norms}
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
- #### `crits()` {#crits}
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
- #### `optims()` {#optims}
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
- ### `device`
173
+ ## **device**
153
174
 
154
175
  variable principale d'allocation des performances
155
176
 
156
- #### **Apple Silicon (macOS)**
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 `'MPS'` (c'est un équivalent de CUDA pour les appareils Apple Silicon).
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
- #### **Windows**
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
- #### **Linux**
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 `'CUDA'`.
166
- 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).
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
- #### **Système non reconnu**
170
- - Si aucune des conditions ci-dessus n'est remplie, la fonction retourne `'CPU'` comme périphérique par défaut.
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=fheTarkDt5IAOzXWTYDY9Jt9jg4heUVbIQ6H7RgwrCc,668
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=Q9VvDPArSbxP1Idrog7FWh-qba3rDoVl_K6kw9sSnvk,3052
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.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
17
- neuralnetworks-0.2.3.dist-info/METADATA,sha256=NBOkoMO48dNjlelcIFSt5n7MAQ6wFCVHjcLZNoBZmvw,17339
18
- neuralnetworks-0.2.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
19
- neuralnetworks-0.2.3.dist-info/top_level.txt,sha256=h18nmC1BX7avyAAwKh0OQWezxgXmOpmVtbFq-8Mcbms,15
20
- neuralnetworks-0.2.3.dist-info/RECORD,,
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,,