Skip to main content

Multi-Layer Perceptrons with Fourier encoding, visualization and PyTorch compilation

Project description

NeuralNetworks Module

Module complet pour la création, l'entraînement et la visualisation de Multi-Layer Perceptrons (MLP)
avec encodage optionnel Fourier, gestion automatique des pertes, compilation Torch et outils
de traitement d'images pour l'apprentissage sur des images RGB.


Contenu principal

Classes

MLP

Multi-Layer Perceptron (MLP) avec options avancées :

  • Encodage Fourier gaussien (RFF) optionnel
  • Stockage automatique des pertes
  • Compilation Torch optionnelle pour accélérer l’inférence
  • Gestion flexible de l’optimiseur, de la fonction de perte et de la normalisation

Méthodes principales :

  • __init__(layers, learning_rate, Fourier, optimizer, criterion, normalizer, name, Iscompiled)
    Initialise le réseau avec toutes les options.

  • train(inputs, outputs, num_epochs, batch_size)
    Entraîne le MLP sur des données (inputs → outputs) en utilisant AMP et mini-batchs.

  • plot(inputs, img_array)
    Affiche l'image originale, la prédiction du MLP et la courbe des pertes.

  • __call__(x)
    Applique l’encodage puis le MLP pour produire une prédiction.

  • Create_MLP(layers)
    Construit le MLP avec normalisation/activation et Sigmoid finale.

  • params()
    Retourne tous les poids du MLP (ligne par ligne) sous forme de liste de numpy.ndarray.

  • nb_params()
    Calcule le nombre total de poids dans le MLP.

  • neurons()
    Retourne la liste des biais (neurones) de toutes les couches linéaires.

  • __repr__()
    Affiche un schéma visuel du MLP via visualtorch et print des dimensions.


Fonctions utilitaires

  • tensorise(obj)
    Convertit un objet array-like ou tensor en torch.Tensor float32 sur le device actif.

  • rglen(list)
    Renvoie un range correspondant aux indices d'une liste.

  • fPrintDoc(obj)
    Crée une fonction lambda qui affiche le docstring d'un objet.

  • image_from_url(url, img_size)
    Télécharge une image depuis une URL, la redimensionne et génère :

    • img_array : np.ndarray (H, W, 3) pour affichage.
    • inputs : tenseur (H*W, 2) coordonnées normalisées.
    • outputs : tenseur (H*W, 3) valeurs RGB cibles.

Visualisation et comparaison

  • plot(img_array, inputs, *nets)
    Affiche pour chaque réseau l'image reconstruite à partir des entrées.

  • compare(img_array, inputs, *nets)
    Affiche pour chaque réseau l'erreur absolue entre l'image originale et la prédiction,
    et trace également les pertes cumulées. Chaque réseau doit posséder :

    • encoding(x) si RFF activé
    • model() retournant un tenseur (N, 3)
    • attribut losses

Objets et dictionnaires

  • Norm_list : dict
    Contient les modules PyTorch correspondant aux fonctions de normalisation/activation disponibles (ReLU, GELU, Sigmoid, Tanh, etc.)

  • Criterion_list : dict
    Contient les fonctions de perte PyTorch disponibles (MSE, L1, SmoothL1, BCE, CrossEntropy, etc.)

  • Optim_list(self, learning_rate)
    Retourne un dictionnaire d’optimiseurs PyTorch initialisés avec self.model.parameters().


Device et configuration

  • device
    Device par défaut (GPU si disponible, sinon CPU).

Paramètres matplotlib et PyTorch

  • Style global pour fond transparent et texte gris
  • Optimisations CUDA activées pour TF32, matmul et convolutions
  • Autograd configuré pour privilégier les performances

Notes générales

  • Toutes les méthodes de MLP utilisent les tenseurs sur le device global (CPU ou GPU)
  • Les images doivent être normalisées entre 0 et 1
  • Les fonctions interactives (plot, compare) utilisent matplotlib en mode interactif
  • Le module est conçu pour fonctionner dans Jupyter et scripts Python classiques

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.1.11.tar.gz (30.0 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.1.11-py3-none-any.whl (32.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for neuralnetworks-0.1.11.tar.gz
Algorithm Hash digest
SHA256 b1b24c5a362697035030f83c49b46f69409c660652a85499fe874818c4a0e34a
MD5 f5e5d06bd7a966f46bc2587f30834714
BLAKE2b-256 6798dd12667b27a463f71d5c9a24c3b051742c02f0cbb6889e2d6c38988995bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for neuralnetworks-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 a5b0390154f8367be922b98edaa5b412e318175b96a424cadfdbc972eeb8bfa7
MD5 33bf37940823ce4fb944bd5090a83dfe
BLAKE2b-256 9a141a4603328df79e6922631ca2cac5c368d1a5bdca37de407cc4271b726e2e

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