AIDGE IN SPACE
Banc d'essai de compression d'image apprise pour l'embarqué
Chargement...
Recherche...
Aucune correspondance
Référence de l'espace de nommage aidge_in_space.backends

Exécution de l'encodeur embarqué (transformée d'analyse g_a) sur plusieurs moteurs. Plus de détails...

Fonctions

 available (key)
 Indique si un moteur est utilisable (bibliothèques importables).
 available_backends ()
 Liste des identifiants de moteurs utilisables, dans l'ordre de BACKENDS.
 limited_threads ()
 Contexte dans lequel PyTorch calcule sur THREADS thread(s).
 fingerprint (module)
 Empreinte des poids d'un module (SHA-1 tronqué), mise en cache sur le module.
 export_onnx (module, shape)
 Exporte un module en ONNX pour une taille d'entrée fixe, ou réutilise l'export existant.
 _prune_onnx (keep)
 Supprime les exports ONNX les moins récemment utilisés au-delà de MAX_ONNX_FILES.
 _torch_runner (module)
 Exécuteur PyTorch du module, sur THREADS thread(s).
 _onnxruntime_runner (path)
 Exécuteur ONNX Runtime (CPU, THREADS thread(s)) d'un fichier ONNX.
 _aidge_runner (path, shape)
 Exécuteur Aidge (backend CPU, ordonnanceur séquentiel) d'un fichier ONNX.
 get_runner (backend, module, shape)
 Fonction numpy -> numpy qui exécute module sur backend.
 clear_runners ()
 Vide le cache des exécuteurs (libère modèles, sessions et graphes).

Variables

dict BACKENDS = {"torch": "PyTorch", "onnxruntime": "ONNX Runtime", "aidge": "Aidge (CPU)"}
 Moteurs connus : identifiant -> nom affiché.
int THREADS = 1
 Nombre de threads de calcul utilisés pour toutes les mesures.
int ONNX_OPSET = 13
 Version d'opset des exports ONNX (prise en charge par aidge_onnx 0.10).
int MAX_RUNNERS = 8
 Nombre de moteurs préparés gardés en mémoire (chacun retient un modèle, une session ou un graphe).
int MAX_ONNX_FILES = 32
 Nombre de fichiers ONNX gardés dans outputs/onnx ; les plus anciens sont supprimés.
 _runners = OrderedDict()
 Cache LRU des exécuteurs : (moteur, empreinte des poids, forme) -> fonction numpy -> numpy.

Description détaillée

Exécution de l'encodeur embarqué (transformée d'analyse g_a) sur plusieurs moteurs.

  • torch : référence PyTorch ;
  • onnxruntime : le modèle ONNX qui sert d'entrée à Aidge ;
  • aidge : backend CPU d'Aidge, première étape vers le code C/C++ généré.

Les mesures de temps se font sur THREADS thread(s) pour rester comparables entre moteurs (et plus proches d'un CPU embarqué) ; elles restent indicatives tant qu'elles sont prises sur PC.

Les modèles ONNX sont exportés une fois par (poids, taille d'entrée) dans outputs/onnx, et les moteurs préparés (session, graphe compilé) sont gardés dans un cache LRU de MAX_RUNNERS entrées.

Documentation des fonctions

◆ _aidge_runner()

aidge_in_space.backends._aidge_runner ( path,
shape )
protected

Exécuteur Aidge (backend CPU, ordonnanceur séquentiel) d'un fichier ONNX.

Paramètres
pathFichier ONNX.
shapeForme de l'entrée, nécessaire à la compilation du graphe.

◆ _prune_onnx()

aidge_in_space.backends._prune_onnx ( keep)
protected

Supprime les exports ONNX les moins récemment utilisés au-delà de MAX_ONNX_FILES.

Paramètres
keepFichier à ne jamais supprimer (celui qui vient d'être écrit).

◆ available()

aidge_in_space.backends.available ( key)

Indique si un moteur est utilisable (bibliothèques importables).

Paramètres
keyIdentifiant de BACKENDS.
Renvoie
Couple (disponible, message d'erreur ou chaîne vide).

◆ export_onnx()

aidge_in_space.backends.export_onnx ( module,
shape )

Exporte un module en ONNX pour une taille d'entrée fixe, ou réutilise l'export existant.

L'export est écrit dans un fichier temporaire puis renommé : un export interrompu ne laisse jamais de fichier tronqué à l'emplacement final.

Paramètres
moduleModule aux GDN déjà gelées (aidge_in_space.nn.freeze()).
shapeForme de l'entrée, (1, C, H, W).
Renvoie
Chemin du fichier ONNX (entrée "image", sortie "latent").

◆ fingerprint()

aidge_in_space.backends.fingerprint ( module)

Empreinte des poids d'un module (SHA-1 tronqué), mise en cache sur le module.

Un modèle ré-entraîné sous le même nom donne une autre empreinte, donc un autre fichier ONNX.

Paramètres
moduletorch.nn.Module.
Renvoie
Chaîne hexadécimale de 12 caractères.

◆ get_runner()

aidge_in_space.backends.get_runner ( backend,
module,
shape )

Fonction numpy -> numpy qui exécute module sur backend.

L'exécuteur est préparé une fois par (moteur, poids, taille) puis gardé dans un cache LRU de MAX_RUNNERS entrées.

Paramètres
backendIdentifiant de BACKENDS.
moduleModule aux GDN gelées.
shapeForme de l'entrée, (1, C, H, W).
Renvoie
Fonction qui prend un tableau float32 de forme shape et renvoie la sortie du module.
Exceptions
RuntimeErrorsi le moteur est indisponible.

◆ limited_threads()

aidge_in_space.backends.limited_threads ( )

Contexte dans lequel PyTorch calcule sur THREADS thread(s).

Utilisé pour tout ce qui est chronométré (encodeur, hyperprior, décodage), afin que les temps restent comparables d'un codec et d'un moteur à l'autre.