NeuralNetworks 0.2.3__tar.gz → 0.2.5__tar.gz

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.
Files changed (25) hide show
  1. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/PKG-INFO +55 -47
  2. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/README.md +54 -46
  3. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/MLP/__init__.py +1 -1
  4. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/__init__.py +1 -1
  5. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks.egg-info/PKG-INFO +55 -47
  6. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/LICENSE +0 -0
  7. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/pyproject.toml +0 -0
  8. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/setup.cfg +0 -0
  9. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Dependances/__init__.py +0 -0
  10. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Dependances/matplot.py +0 -0
  11. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Dependances/pytorch.py +0 -0
  12. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/MLP/FourierFeatures.py +0 -0
  13. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/MLP/Layers.py +0 -0
  14. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/MLP/inference.py +0 -0
  15. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Trainer/__init__.py +0 -0
  16. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Trainer/dynamic_learning_rate.py +0 -0
  17. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Trainer/sample_data.py +0 -0
  18. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Trainer/train.py +0 -0
  19. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/UI/Learnings.py +0 -0
  20. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/UI/Losses.py +0 -0
  21. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/UI/__init__.py +0 -0
  22. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks.egg-info/SOURCES.txt +0 -0
  23. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks.egg-info/dependency_links.txt +0 -0
  24. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks.egg-info/requires.txt +0 -0
  25. {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: NeuralNetworks
3
- Version: 0.2.3
3
+ Version: 0.2.5
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,8 +46,6 @@ Cette classe fournit :
48
46
 
49
47
  ---
50
48
 
51
- ##### Paramètres
52
-
53
49
  | **Paramètres** | **Type** | **Optionnel** | **Description** |
54
50
  |----------------------|--------------------------------------------------------------------------------------------------|---------------|--------------------------------------------------------------------------------|
55
51
  | `input_size` | [`int`](https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex) | Oui | Taille des données en entrée au réseau. Default: `1` |
@@ -61,26 +57,22 @@ Cette classe fournit :
61
57
  | `norm` | [`norm`](#norms) | Oui | Type de normalisation / activation pour les couches cachées. Default: `'Relu'` |
62
58
  | `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
59
 
64
- ##### Attributs
65
-
66
- - `losses : list[float]` Historique des pertes cumulées lors de l'entraînement
67
- - `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
60
+ | **Attributs** | **Type** | **Description** |
61
+ |-----------------|--------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------|
62
+ | `MLP.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 |
63
+ | `MLP.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 |
64
+ | `MLP.model` | [`nn.Sequential`](https://docs.pytorch.org/docs/stable/generated/torch.nn.Sequential.html) | MLP complet construit dynamiquement |
65
+ | `MLP.name` | [`str`](https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str) | Nom du réseau |
70
66
 
71
67
  ---
72
68
 
73
- #### `Trainer`
74
-
75
- Cette classe fournit :
76
-
77
- - 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)
69
+ ### **Trainer**
78
70
 
79
- ##### Paramètres
71
+ Classe pour entraîner des réseaux avec mini-batchs et [Automatic Mixed Precision](https://docs.pytorch.org/tutorials/recipes/recipes/amp_recipe.html).
80
72
 
81
73
  | **Paramètres** | **Type** | **Optionnel** | **Description** |
82
74
  |----------------|-------------------------------------------------------------------------------------------------|---------------|-----------------------------------------------------------------------------------------------------------------|
83
- | `*nets` | [`MLP`](#MLP) | Non | Réseaux pour lesquels le trainer va entrainer. |
75
+ | `*nets` | [`MLP`](#mlp) | Non | Réseaux pour lesquels le trainer va entrainer. |
84
76
  | `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
77
  | `outputs` | [`numpy.array(list[float])`](https://numpy.org/doc/stable/reference/generated/numpy.array.html) | Non | Données en sortie au réseau. |
86
78
  | `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` |
@@ -89,9 +81,9 @@ Cette classe fournit :
89
81
  | `crit` | [`crit`](#crits) | Oui | Fonction de perte à utiliser (doit exister dans `crits()`). Default: `MSE'` |
90
82
  | `batch_size` | [`int`](https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex) | Oui | Taille des minibatchs. Default: `1024` |
91
83
 
92
- ##### `Trainer.train`
84
+ #### **Trainer.train**
93
85
 
94
- Lancement d'un entrainement avec le trainer définit
86
+ Lancement d'un entrainement avec le trainer définit.
95
87
 
96
88
  | **Paramètres** | **Type** | **Optionnel** | **Description** |
97
89
  |-----------------|------------------------------------------------------------------------------------------|---------------|-----------------------------------------|
@@ -100,9 +92,21 @@ Lancement d'un entrainement avec le trainer définit
100
92
 
101
93
  ---
102
94
 
103
- ### Dictionnaires
95
+ ## **Méthodes**
96
+
97
+ ### **losses**
98
+
99
+ Affiche les résidus en fonction des époques d'entrainement des réseaux.
100
+
101
+ ### **learnings**
102
+
103
+ Affiche les taux d'apprentissage en fonction des époques d'entrainement des réseaux.
104
+
105
+ ---
106
+
107
+ ## **Dictionnaires**
104
108
 
105
- #### `norms()` {#norms}
109
+ ### **norms**
106
110
 
107
111
  | **Valeurs** | **Module PyTorch** | **Description** |
108
112
  |---------------|--------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
@@ -118,20 +122,9 @@ Lancement d'un entrainement avec le trainer définit
118
122
  | `'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
123
  | `'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
124
 
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. |
125
+ ---
133
126
 
134
- #### `optims()` {#optims}
127
+ ### **optims**
135
128
 
136
129
  | **Valeurs** | **Module PyTorch** | **Description** |
137
130
  |---------------|--------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|
@@ -146,27 +139,42 @@ Lancement d'un entrainement avec le trainer définit
146
139
  | `'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
140
  | `'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
141
  | `'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é. |
142
+
143
+ ---
144
+
145
+ ### **crits**
146
+
147
+ | **Valeurs** | **Module PyTorch** | **Description** |
148
+ |--------------------------|--------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
149
+ | `'MSE'` | [`nn.MSELoss`](https://pytorch.org/docs/stable/generated/torch.nn.MSELoss.html) | Perte utilisée pour les régressions. |
150
+ | `'L1'` | [`nn.L1Loss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.L1Loss.html) | Perte utilisée pour la régularisation. |
151
+ | `'SmoothL1'` | [`nn.SmoothL1Loss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.SmoothL1Loss.html) | Perte moins sensible aux outliers. |
152
+ | `'Huber'` | [`nn.HuberLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.HuberLoss.html) | Perte moins affectée par les grands écarts. |
153
+ | `'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. |
154
+ | `'KLDiv'` | [`nn.KLDivLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.KLDivLoss.html) | Perte utilisée pour des modèles probabilistes. |
155
+ | `'PoissonNLL'` | [`nn.PoissonNLLLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.PoissonNLLLoss.html) | Perte utilisée pour la modélisation de comptages. |
156
+ | `'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
157
 
150
158
  ---
151
159
 
152
- ### `device`
160
+ ## **device**
153
161
 
154
- variable principale d'allocation des performances
162
+ Variable principale d'allocation des performances.
155
163
 
156
- #### **Apple Silicon (macOS)**
164
+ ### **Apple Silicon (macOS)**
157
165
  - 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).
166
+ - 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
167
 
160
- #### **Windows**
168
+ ### **Windows**
161
169
  - 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
170
 
163
- #### **Linux**
171
+ ### **Linux**
164
172
  - 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).
173
+ 1. **CUDA** (NVIDIA) : Si `torch.cuda.is_available()` renvoie `True`, le périphérique sera défini sur `'cuda'`.
174
+ 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
175
  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
176
 
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.
177
+ ### **Système non reconnu**
178
+ - Si aucune des conditions ci-dessus n'est remplie, la fonction retourne `'cpu'` comme périphérique par défaut.
171
179
 
172
180
  ---
@@ -5,11 +5,9 @@ avec encodage optionnel [Fourier Features](https://en.wikipedia.org/wiki/Random_
5
5
 
6
6
  ---
7
7
 
8
- ## Contenu principal
8
+ ## **Classes**
9
9
 
10
- ### Classes
11
-
12
- #### `MLP` {#MLP}
10
+ ### **MLP**
13
11
 
14
12
  Cette classe fournit :
15
13
 
@@ -18,8 +16,6 @@ Cette classe fournit :
18
16
 
19
17
  ---
20
18
 
21
- ##### Paramètres
22
-
23
19
  | **Paramètres** | **Type** | **Optionnel** | **Description** |
24
20
  |----------------------|--------------------------------------------------------------------------------------------------|---------------|--------------------------------------------------------------------------------|
25
21
  | `input_size` | [`int`](https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex) | Oui | Taille des données en entrée au réseau. Default: `1` |
@@ -31,26 +27,22 @@ Cette classe fournit :
31
27
  | `norm` | [`norm`](#norms) | Oui | Type de normalisation / activation pour les couches cachées. Default: `'Relu'` |
32
28
  | `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'` |
33
29
 
34
- ##### Attributs
35
-
36
- - `losses : list[float]` Historique des pertes cumulées lors de l'entraînement
37
- - `learnings : list[float]` Historique des taux d'apprentissage utilisées lors de l'entraînement
38
- - `model : nn.Sequential` MLP complet construit dynamiquement
39
- - `name : str` Nom du réseau
30
+ | **Attributs** | **Type** | **Description** |
31
+ |-----------------|--------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------|
32
+ | `MLP.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 |
33
+ | `MLP.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 |
34
+ | `MLP.model` | [`nn.Sequential`](https://docs.pytorch.org/docs/stable/generated/torch.nn.Sequential.html) | MLP complet construit dynamiquement |
35
+ | `MLP.name` | [`str`](https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str) | Nom du réseau |
40
36
 
41
37
  ---
42
38
 
43
- #### `Trainer`
44
-
45
- Cette classe fournit :
46
-
47
- - 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)
39
+ ### **Trainer**
48
40
 
49
- ##### Paramètres
41
+ Classe pour entraîner des réseaux avec mini-batchs et [Automatic Mixed Precision](https://docs.pytorch.org/tutorials/recipes/recipes/amp_recipe.html).
50
42
 
51
43
  | **Paramètres** | **Type** | **Optionnel** | **Description** |
52
44
  |----------------|-------------------------------------------------------------------------------------------------|---------------|-----------------------------------------------------------------------------------------------------------------|
53
- | `*nets` | [`MLP`](#MLP) | Non | Réseaux pour lesquels le trainer va entrainer. |
45
+ | `*nets` | [`MLP`](#mlp) | Non | Réseaux pour lesquels le trainer va entrainer. |
54
46
  | `inputs` | [`numpy.array(list[float])`](https://numpy.org/doc/stable/reference/generated/numpy.array.html) | Non | Données en entrée au réseau. |
55
47
  | `outputs` | [`numpy.array(list[float])`](https://numpy.org/doc/stable/reference/generated/numpy.array.html) | Non | Données en sortie au réseau. |
56
48
  | `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` |
@@ -59,9 +51,9 @@ Cette classe fournit :
59
51
  | `crit` | [`crit`](#crits) | Oui | Fonction de perte à utiliser (doit exister dans `crits()`). Default: `MSE'` |
60
52
  | `batch_size` | [`int`](https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex) | Oui | Taille des minibatchs. Default: `1024` |
61
53
 
62
- ##### `Trainer.train`
54
+ #### **Trainer.train**
63
55
 
64
- Lancement d'un entrainement avec le trainer définit
56
+ Lancement d'un entrainement avec le trainer définit.
65
57
 
66
58
  | **Paramètres** | **Type** | **Optionnel** | **Description** |
67
59
  |-----------------|------------------------------------------------------------------------------------------|---------------|-----------------------------------------|
@@ -70,9 +62,21 @@ Lancement d'un entrainement avec le trainer définit
70
62
 
71
63
  ---
72
64
 
73
- ### Dictionnaires
65
+ ## **Méthodes**
66
+
67
+ ### **losses**
68
+
69
+ Affiche les résidus en fonction des époques d'entrainement des réseaux.
70
+
71
+ ### **learnings**
72
+
73
+ Affiche les taux d'apprentissage en fonction des époques d'entrainement des réseaux.
74
+
75
+ ---
76
+
77
+ ## **Dictionnaires**
74
78
 
75
- #### `norms()` {#norms}
79
+ ### **norms**
76
80
 
77
81
  | **Valeurs** | **Module PyTorch** | **Description** |
78
82
  |---------------|--------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
@@ -88,20 +92,9 @@ Lancement d'un entrainement avec le trainer définit
88
92
  | `'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. |
89
93
  | `'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]. |
90
94
 
91
- #### `crits()` {#crits}
92
-
93
- | **Valeurs** | **Module PyTorch** | **Description** |
94
- |--------------------------|--------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
95
- | `'MSE'` | [`nn.MSELoss`](https://pytorch.org/docs/stable/generated/torch.nn.MSELoss.html) | Perte utilisée pour les régressions. |
96
- | `'L1'` | [`nn.L1Loss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.L1Loss.html) | Perte utilisée pour la régularisation. |
97
- | `'SmoothL1'` | [`nn.SmoothL1Loss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.SmoothL1Loss.html) | Perte moins sensible aux outliers. |
98
- | `'Huber'` | [`nn.HuberLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.HuberLoss.html) | Perte moins affectée par les grands écarts. |
99
- | `'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. |
100
- | `'KLDiv'` | [`nn.KLDivLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.KLDivLoss.html) | Perte utilisée pour des modèles probabilistes. |
101
- | `'PoissonNLL'` | [`nn.PoissonNLLLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.PoissonNLLLoss.html) | Perte utilisée pour la modélisation de comptages. |
102
- | `'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. |
95
+ ---
103
96
 
104
- #### `optims()` {#optims}
97
+ ### **optims**
105
98
 
106
99
  | **Valeurs** | **Module PyTorch** | **Description** |
107
100
  |---------------|--------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|
@@ -116,27 +109,42 @@ Lancement d'un entrainement avec le trainer définit
116
109
  | `'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. |
117
110
  | `'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. |
118
111
  | `'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é. |
112
+
113
+ ---
114
+
115
+ ### **crits**
116
+
117
+ | **Valeurs** | **Module PyTorch** | **Description** |
118
+ |--------------------------|--------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
119
+ | `'MSE'` | [`nn.MSELoss`](https://pytorch.org/docs/stable/generated/torch.nn.MSELoss.html) | Perte utilisée pour les régressions. |
120
+ | `'L1'` | [`nn.L1Loss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.L1Loss.html) | Perte utilisée pour la régularisation. |
121
+ | `'SmoothL1'` | [`nn.SmoothL1Loss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.SmoothL1Loss.html) | Perte moins sensible aux outliers. |
122
+ | `'Huber'` | [`nn.HuberLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.HuberLoss.html) | Perte moins affectée par les grands écarts. |
123
+ | `'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. |
124
+ | `'KLDiv'` | [`nn.KLDivLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.KLDivLoss.html) | Perte utilisée pour des modèles probabilistes. |
125
+ | `'PoissonNLL'` | [`nn.PoissonNLLLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.PoissonNLLLoss.html) | Perte utilisée pour la modélisation de comptages. |
126
+ | `'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. |
119
127
 
120
128
  ---
121
129
 
122
- ### `device`
130
+ ## **device**
123
131
 
124
- variable principale d'allocation des performances
132
+ Variable principale d'allocation des performances.
125
133
 
126
- #### **Apple Silicon (macOS)**
134
+ ### **Apple Silicon (macOS)**
127
135
  - 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.
128
- - 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).
136
+ - 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).
129
137
 
130
- #### **Windows**
138
+ ### **Windows**
131
139
  - 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**.
132
140
 
133
- #### **Linux**
141
+ ### **Linux**
134
142
  - Si le système d'exploitation est Linux, plusieurs vérifications sont effectuées :
135
- 1. **CUDA** (NVIDIA) : Si `torch.cuda.is_available()` renvoie `True`, le périphérique sera défini sur `'CUDA'`.
136
- 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).
143
+ 1. **CUDA** (NVIDIA) : Si `torch.cuda.is_available()` renvoie `True`, le périphérique sera défini sur `'cuda'`.
144
+ 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).
137
145
  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**.
138
146
 
139
- #### **Système non reconnu**
140
- - Si aucune des conditions ci-dessus n'est remplie, la fonction retourne `'CPU'` comme périphérique par défaut.
147
+ ### **Système non reconnu**
148
+ - Si aucune des conditions ci-dessus n'est remplie, la fonction retourne `'cpu'` comme périphérique par défaut.
141
149
 
142
150
  ---
@@ -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.5"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: NeuralNetworks
3
- Version: 0.2.3
3
+ Version: 0.2.5
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,8 +46,6 @@ Cette classe fournit :
48
46
 
49
47
  ---
50
48
 
51
- ##### Paramètres
52
-
53
49
  | **Paramètres** | **Type** | **Optionnel** | **Description** |
54
50
  |----------------------|--------------------------------------------------------------------------------------------------|---------------|--------------------------------------------------------------------------------|
55
51
  | `input_size` | [`int`](https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex) | Oui | Taille des données en entrée au réseau. Default: `1` |
@@ -61,26 +57,22 @@ Cette classe fournit :
61
57
  | `norm` | [`norm`](#norms) | Oui | Type de normalisation / activation pour les couches cachées. Default: `'Relu'` |
62
58
  | `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
59
 
64
- ##### Attributs
65
-
66
- - `losses : list[float]` Historique des pertes cumulées lors de l'entraînement
67
- - `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
60
+ | **Attributs** | **Type** | **Description** |
61
+ |-----------------|--------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------|
62
+ | `MLP.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 |
63
+ | `MLP.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 |
64
+ | `MLP.model` | [`nn.Sequential`](https://docs.pytorch.org/docs/stable/generated/torch.nn.Sequential.html) | MLP complet construit dynamiquement |
65
+ | `MLP.name` | [`str`](https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str) | Nom du réseau |
70
66
 
71
67
  ---
72
68
 
73
- #### `Trainer`
74
-
75
- Cette classe fournit :
76
-
77
- - 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)
69
+ ### **Trainer**
78
70
 
79
- ##### Paramètres
71
+ Classe pour entraîner des réseaux avec mini-batchs et [Automatic Mixed Precision](https://docs.pytorch.org/tutorials/recipes/recipes/amp_recipe.html).
80
72
 
81
73
  | **Paramètres** | **Type** | **Optionnel** | **Description** |
82
74
  |----------------|-------------------------------------------------------------------------------------------------|---------------|-----------------------------------------------------------------------------------------------------------------|
83
- | `*nets` | [`MLP`](#MLP) | Non | Réseaux pour lesquels le trainer va entrainer. |
75
+ | `*nets` | [`MLP`](#mlp) | Non | Réseaux pour lesquels le trainer va entrainer. |
84
76
  | `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
77
  | `outputs` | [`numpy.array(list[float])`](https://numpy.org/doc/stable/reference/generated/numpy.array.html) | Non | Données en sortie au réseau. |
86
78
  | `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` |
@@ -89,9 +81,9 @@ Cette classe fournit :
89
81
  | `crit` | [`crit`](#crits) | Oui | Fonction de perte à utiliser (doit exister dans `crits()`). Default: `MSE'` |
90
82
  | `batch_size` | [`int`](https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex) | Oui | Taille des minibatchs. Default: `1024` |
91
83
 
92
- ##### `Trainer.train`
84
+ #### **Trainer.train**
93
85
 
94
- Lancement d'un entrainement avec le trainer définit
86
+ Lancement d'un entrainement avec le trainer définit.
95
87
 
96
88
  | **Paramètres** | **Type** | **Optionnel** | **Description** |
97
89
  |-----------------|------------------------------------------------------------------------------------------|---------------|-----------------------------------------|
@@ -100,9 +92,21 @@ Lancement d'un entrainement avec le trainer définit
100
92
 
101
93
  ---
102
94
 
103
- ### Dictionnaires
95
+ ## **Méthodes**
96
+
97
+ ### **losses**
98
+
99
+ Affiche les résidus en fonction des époques d'entrainement des réseaux.
100
+
101
+ ### **learnings**
102
+
103
+ Affiche les taux d'apprentissage en fonction des époques d'entrainement des réseaux.
104
+
105
+ ---
106
+
107
+ ## **Dictionnaires**
104
108
 
105
- #### `norms()` {#norms}
109
+ ### **norms**
106
110
 
107
111
  | **Valeurs** | **Module PyTorch** | **Description** |
108
112
  |---------------|--------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
@@ -118,20 +122,9 @@ Lancement d'un entrainement avec le trainer définit
118
122
  | `'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
123
  | `'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
124
 
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. |
125
+ ---
133
126
 
134
- #### `optims()` {#optims}
127
+ ### **optims**
135
128
 
136
129
  | **Valeurs** | **Module PyTorch** | **Description** |
137
130
  |---------------|--------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|
@@ -146,27 +139,42 @@ Lancement d'un entrainement avec le trainer définit
146
139
  | `'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
140
  | `'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
141
  | `'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é. |
142
+
143
+ ---
144
+
145
+ ### **crits**
146
+
147
+ | **Valeurs** | **Module PyTorch** | **Description** |
148
+ |--------------------------|--------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
149
+ | `'MSE'` | [`nn.MSELoss`](https://pytorch.org/docs/stable/generated/torch.nn.MSELoss.html) | Perte utilisée pour les régressions. |
150
+ | `'L1'` | [`nn.L1Loss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.L1Loss.html) | Perte utilisée pour la régularisation. |
151
+ | `'SmoothL1'` | [`nn.SmoothL1Loss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.SmoothL1Loss.html) | Perte moins sensible aux outliers. |
152
+ | `'Huber'` | [`nn.HuberLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.HuberLoss.html) | Perte moins affectée par les grands écarts. |
153
+ | `'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. |
154
+ | `'KLDiv'` | [`nn.KLDivLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.KLDivLoss.html) | Perte utilisée pour des modèles probabilistes. |
155
+ | `'PoissonNLL'` | [`nn.PoissonNLLLoss()`](https://docs.pytorch.org/docs/stable/generated/torch.nn.PoissonNLLLoss.html) | Perte utilisée pour la modélisation de comptages. |
156
+ | `'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
157
 
150
158
  ---
151
159
 
152
- ### `device`
160
+ ## **device**
153
161
 
154
- variable principale d'allocation des performances
162
+ Variable principale d'allocation des performances.
155
163
 
156
- #### **Apple Silicon (macOS)**
164
+ ### **Apple Silicon (macOS)**
157
165
  - 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).
166
+ - 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
167
 
160
- #### **Windows**
168
+ ### **Windows**
161
169
  - 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
170
 
163
- #### **Linux**
171
+ ### **Linux**
164
172
  - 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).
173
+ 1. **CUDA** (NVIDIA) : Si `torch.cuda.is_available()` renvoie `True`, le périphérique sera défini sur `'cuda'`.
174
+ 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
175
  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
176
 
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.
177
+ ### **Système non reconnu**
178
+ - Si aucune des conditions ci-dessus n'est remplie, la fonction retourne `'cpu'` comme périphérique par défaut.
171
179
 
172
180
  ---
File without changes
File without changes