Skip to main content

Multi-Layer Perceptrons with multi-Fourier encoding, variable learning rate, visualization and PyTorch compilation

Project description

NeuralNetworks Module

Module complet pour la création et l'entraînement de MultiLayer Perceptrons (MLP)
avec encodage optionnel Fourier Features et gestion automatique des pertes.


Classes

MLP

Cette classe fournit :

  • Un MLP entièrement configurable (dimensions, activation).
  • Option d'encodage Fourier Features sur les entrées.

Paramètres

Paramètres Type Optionnel Description
input_size int Oui Taille des données en entrée au réseau. Default: 1
output_size int Oui Taille des données en sortie au réseau. Default: 1
hidden_layers list[int] Oui Dimensions successives des couches intermédiaires du réseau. Default: [1]
sigmas list[float] Oui Liste de sigma pour encodages RFF. Si None : passthrough. Default: None
fourier_input_size int Oui WIP. Default: 2
nb_fourier int Oui Nombre de fréquences utilisées pour les Fourier Features. Default: 8
norm norm Oui Type de normalisation / activation pour les couches cachées. Default: 'Relu'
name str Oui Nom du réseau pour identification ou affichage. Default: 'Net'

Attributs

  • losses : list[float] — Historique des pertes cumulées lors de l'entraînement
  • learnings : list[float] — Historique des taux d'apprentissage utilisées lors de l'entraînement
  • model : nn.Sequential — MLP complet construit dynamiquement
  • name : str — Nom du réseau
Attributs Type Description
losses list[float] Historique des pertes cumulées lors de l'entraînement
learnings list[float] Historique des taux d'apprentissage utilisées lors de l'entraînement
model nn.Sequential MLP complet construit dynamiquement
name str Nom du réseau

Trainer

Cette classe fournit :

Paramètres

Paramètres Type Optionnel Description
*nets MLP Non Réseaux pour lesquels le trainer va entrainer.
inputs numpy.array(list[float]) Non Données en entrée au réseau.
outputs numpy.array(list[float]) Non Données en sortie au réseau.
test_size float Oui Proportion des données à utiliser pendant l'entrainement. Si None : utilise toutes les données. Default: None
optim optim Oui Nom de l’optimiseur à utiliser (doit exister dans optims()). Default: 'Adam'
init_lr float Oui Taux d’apprentissage initial pour l’optimiseur. Default: 1e-3
crit crit Oui Fonction de perte à utiliser (doit exister dans crits()). Default: MSE'
batch_size int Oui Taille des minibatchs. Default: 1024

Trainer.train

Lancement d'un entrainement avec le trainer définit

Paramètres Type Optionnel Description
num_epochs int Oui Nombres d'itérations à effectuer.
activate_tqdm boolean Oui Utilisation d'une barre de progression.

Méthodes

losses

Affiche les résidus en fonction des époques d'entrainement des réseaux.

learnings

Affiche les taux d'apprentissage en fonction des époques d'entrainement des réseaux.


Dictionnaires

norms

Valeurs Module PyTorch Description
'ReLU' nn.ReLU() Fonction d'activation ReLU classique (Rectified Linear Unit).
'LeakyReLU' nn.LeakyReLU() ReLU avec un petit coefficient pour les valeurs négatives (paramètre negative_slope).
'ELU' nn.ELU() Fonction d'activation ELU (Exponential Linear Unit), qui a une meilleure gestion des valeurs négatives.
'SELU' nn.SELU() SELU (Scaled Exponential Linear Unit), une version améliorée de l'ELU pour des réseaux auto-normalisants.
'GELU' nn.GELU() GELU (Gaussian Error Linear Unit), une activation probabiliste basée sur une fonction gaussienne.
'Mish' nn.Mish() ReLU différentiable en tout points avec passage négatif.
'Softplus' nn.Softplus() Fonction d'activation qui approxime ReLU mais de manière lissée.
'Sigmoid' nn.Sigmoid() Fonction d'activation Sigmoid, qui produit une sortie entre 0 et 1.
'Tanh' nn.Tanh() Fonction d'activation Tanh, avec une sortie dans l'intervalle [-1, 1].
'Hardtanh' nn.Hardtanh() Variante de Tanh, avec des sorties limitées entre une plage spécifiée.
'Softsign' nn.Softsign() Fonction d'activation similaire à Tanh mais plus souple, avec des valeurs dans [-1, 1].

optims

Valeurs Module PyTorch Description
'Adadelta' optim.Adadelta() Optimiseur basé sur les gradients adaptatifs, sans nécessité de réglage du taux d'apprentissage.
'Adafactor' optim.Adafactor() Optimiseur variant d'Adam avec une mise à jour plus efficace de la mémoire pour de grands modèles.
'Adam' optim.Adam() Optimiseur utilisant un gradient stochastique adaptatif avec des moyennes mobiles des gradients.
'AdamW' optim.AdamW() Optimiseur avec une régularisation L2 (weight decay) distincte.
'Adamax' optim.Adamax() Optimiseur utilisant une norme infinie pour les gradients, plus stable pour certaines configurations.
'ASGD' optim.ASGD() Optimiseur utilisé pour de grandes données avec une moyenne des gradients.
'NAdam' optim.NAdam() Optimiseur avec une adaptation des moments de second ordre.
'RAdam' optim.RAdam() Optimiseur qui ajuste dynamiquement les moments pour stabiliser l'entraînement.
'RMSprop' optim.RMSprop() Optimiseur utilisant une moyenne mobile des carrés des gradients pour réduire les oscillations.
'Rprop' optim.Rprop() Optimiseur basé sur les mises à jour des poids indépendantes des gradients.
'SGD' optim.SGD() Optimiseur souvent utilisée avec un taux d'apprentissage constant ou ajusté.

crits

Valeurs Module PyTorch Description
'MSE' nn.MSELoss Perte utilisée pour les régressions.
'L1' nn.L1Loss() Perte utilisée pour la régularisation.
'SmoothL1' nn.SmoothL1Loss() Perte moins sensible aux outliers.
'Huber' nn.HuberLoss() Perte moins affectée par les grands écarts.
'CrossEntropy' nn.CrossEntropyLoss() Perte utilisée pour les problèmes de classification multi-classes.
'KLDiv' nn.KLDivLoss() Perte utilisée pour des modèles probabilistes.
'PoissonNLL' nn.PoissonNLLLoss() Perte utilisée pour la modélisation de comptages.
'MultiLabelSoftMargin' nn.MultiLabelSoftMarginLoss() Perte utilisée pour les problèmes de classification multi-étiquettes.

device

variable principale d'allocation des performances

Apple Silicon (macOS)

  • 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.
    • 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).

Windows

  • 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.

Linux

  • Si le système d'exploitation est Linux, plusieurs vérifications sont effectuées :
    1. CUDA (NVIDIA) : Si torch.cuda.is_available() renvoie True, le périphérique sera défini sur 'cuda'.
    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).
    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.

Système non reconnu

  • Si aucune des conditions ci-dessus n'est remplie, la fonction retourne 'cpu' comme périphérique par défaut.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neuralnetworks-0.2.4.tar.gz (29.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

neuralnetworks-0.2.4-py3-none-any.whl (31.6 kB view details)

Uploaded Python 3

File details

Details for the file neuralnetworks-0.2.4.tar.gz.

File metadata

  • Download URL: neuralnetworks-0.2.4.tar.gz
  • Upload date:
  • Size: 29.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for neuralnetworks-0.2.4.tar.gz
Algorithm Hash digest
SHA256 0cfe187c2c1d8d5e4033c1f7d39aa44a1aab870508ef2cf1154a27720512d962
MD5 24ad9a95391be62d39b77531c4c714b0
BLAKE2b-256 daadb33d6177df3ed84a13d639a36b60672ea11c4d7d4eaf2eeac20de6d52dd3

See more details on using hashes here.

File details

Details for the file neuralnetworks-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: neuralnetworks-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 31.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for neuralnetworks-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 049852dce3912a1f27fc299bfd7abf798edde79ff2527173d4d44b386de310e7
MD5 13e2266294a5a2e91c63b822dbcb3e55
BLAKE2b-256 2dcae6fb089ddda7a2be9315b8bb4f23c79728694cabc6282d75800cb35bb161

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page