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.
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/PKG-INFO +55 -47
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/README.md +54 -46
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/MLP/__init__.py +1 -1
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/__init__.py +1 -1
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks.egg-info/PKG-INFO +55 -47
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/LICENSE +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/pyproject.toml +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/setup.cfg +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Dependances/__init__.py +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Dependances/matplot.py +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Dependances/pytorch.py +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/MLP/FourierFeatures.py +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/MLP/Layers.py +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/MLP/inference.py +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Trainer/__init__.py +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Trainer/dynamic_learning_rate.py +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Trainer/sample_data.py +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Trainer/train.py +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/UI/Learnings.py +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/UI/Losses.py +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/UI/__init__.py +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks.egg-info/SOURCES.txt +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks.egg-info/dependency_links.txt +0 -0
- {neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks.egg-info/requires.txt +0 -0
- {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
|
+
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
|
-
##
|
|
38
|
+
## **Classes**
|
|
39
39
|
|
|
40
|
-
###
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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`](#
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
160
|
+
## **device**
|
|
153
161
|
|
|
154
|
-
|
|
162
|
+
Variable principale d'allocation des performances.
|
|
155
163
|
|
|
156
|
-
|
|
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 `'
|
|
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
|
-
|
|
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
|
-
|
|
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 `'
|
|
166
|
-
2. **ROCm** (AMD) : Si le système supporte **ROCm** via `torch.backends.hip.is_available()`, l'appareil sera défini sur `'
|
|
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
|
-
|
|
170
|
-
- Si aucune des conditions ci-dessus n'est remplie, la fonction retourne `'
|
|
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
|
-
##
|
|
8
|
+
## **Classes**
|
|
9
9
|
|
|
10
|
-
###
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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`](#
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
130
|
+
## **device**
|
|
123
131
|
|
|
124
|
-
|
|
132
|
+
Variable principale d'allocation des performances.
|
|
125
133
|
|
|
126
|
-
|
|
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 `'
|
|
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
|
-
|
|
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
|
-
|
|
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 `'
|
|
136
|
-
2. **ROCm** (AMD) : Si le système supporte **ROCm** via `torch.backends.hip.is_available()`, l'appareil sera défini sur `'
|
|
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
|
-
|
|
140
|
-
- Si aucune des conditions ci-dessus n'est remplie, la fonction retourne `'
|
|
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 '
|
|
57
|
+
print (f"Warning: '{norm}' not recognized, falling back to 'Relu'")
|
|
58
58
|
self.norm = norm_list.get ("Relu")
|
|
59
59
|
|
|
60
60
|
# --- Attributs ---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: NeuralNetworks
|
|
3
|
-
Version: 0.2.
|
|
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
|
-
##
|
|
38
|
+
## **Classes**
|
|
39
39
|
|
|
40
|
-
###
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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`](#
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
160
|
+
## **device**
|
|
153
161
|
|
|
154
|
-
|
|
162
|
+
Variable principale d'allocation des performances.
|
|
155
163
|
|
|
156
|
-
|
|
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 `'
|
|
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
|
-
|
|
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
|
-
|
|
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 `'
|
|
166
|
-
2. **ROCm** (AMD) : Si le système supporte **ROCm** via `torch.backends.hip.is_available()`, l'appareil sera défini sur `'
|
|
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
|
-
|
|
170
|
-
- Si aucune des conditions ci-dessus n'est remplie, la fonction retourne `'
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks/Trainer/dynamic_learning_rate.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{neuralnetworks-0.2.3 → neuralnetworks-0.2.5}/src/NeuralNetworks.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|