Aide pour la Directive modul
Revenir à la page d'accueil
modul modulname { (space spacename), (opera operaname)} liste-d-attributs
Cette directive permet de déclarer les modules. Un module est identifié par son nom (modulname). Il doit ensuite être rattaché :
- soit à un espace introduit par le mot clé space suivi du nom de l’espace(spacename),
- soit à un opérateur introduit par le mot clé opera suivi du nom de l’opérateur (operaname).
Puis le module est décrit par un ensemble d’attributs dont la syntaxe et les explications sont détaillées dans le chapitre dédié aux modules.
On s’y rapportera donc.
Toutefois, nous indiquons succinctement ci-après la liste de ces attributs, qui peuvent, selon les cas, être ou pas associés aux modules
noward :
module qui n’a pas de fonction *ward. Il ne devra pas apparaître dans la directive
order. Un source.h n’a donc pas lieu d’être. Il s’agit en général d’un paramètre à contrôler.
inter YAa [YAb [YAc ]] :
Module permettant d’intervenir {à un niveau, sur des axes} intercalaire de l’espace.
input [array] nbi :
Définit le nombre d’entrées (nbi) du module. Si array est utilisé, les fonctions *ward
ne devront pas avoir de passage de paramètre; cela suppose que le tableau Yting sera directement utilisé comme entrées du module.
output nbs :
Définit le nombre de sorties (nbs) du module.
target [{uptime, steptime, alltime}]:
Module que l’on cherche à ajuster (corriger). Par défaut ou lorsque uptime est précisé, le contrôle ne portera que sur la valeur initiale (uptime)
de la variable. Sinon le contrôle peut porter sur toute la trajectoire en utilisant steptime et y compris la partie initiale(uptime) si l’on
utilise plutôt alltime.
rem: en phase de béta test.
tempo :
Module dont au moins une sortie doit être mémorisée sur la trajectoire car sa valeur
intervient soit dans le calcul des dérivées, soit (et/ou) elle est référencée dans le
passé.
cout :
Module (de sortie) qui participe au calcul de la fonction de coût (aussi dite objective)
? lopera operaname [operaname …]
lopera introduit une liste d’opérateurs à activer selon les besoins algorithmiques. Plm le seul besoin algorithmique identifié est celui du calcul
de la fonction de coût qui peut utiliser des opérateurs de type H, B, R ou K (cf directive opera).
? covt cout_modulname
Lorsqu’on utilise un opérateur de covariance, covt permet de mettre en relation les deux modules entre lesquels l’erreur quadratique doit être calculée (d’une part le « cout_modulname » sensé instiguer l’opérateur auquel appartient le présent module d’autre part).
(nb: incidemment, par défaut, le covt d’un module cout est le module cout lui-même).
spec :
Permet de faire une déclaration spécifique de la classe particulière du module (qui
autrement est faite automatiquement par Yao)
netward :
Indique que le module utilise les fonctions réseau de neurones. Yao en tiendra compte pour rétro-propager automatiquement les gradients calculés par
le réseau à condition de les stocker dans le tableau Ytbeta et que les connexions du module aient été établies par la directive ctin ou ctinm
autonet netname :
lorsque le module n’utilise qu’un seul réseau de neurones, dont le nom est spécifié par netname, et qui a les mêmes nombres d’entrées-sorties, le
mot clé autonet dispense l’utilisateur de la création d’un module source.h. L’utilisateur devra alors simplement penser à charger les poids du réseau (cf netload) et à indiquer le type d’activation à appliquer (cf setn_activ)
rem1 : netward et autonet sont incompatible.
rem2 : pour l’assimilation de données, les modules réseaux de neurones devraient être tempo.
clonol modname :
Clonage de module : lorsque ce mot clé est présent, il doit être le seul car le module héritera de tous les attributs du module cloné désigné par
modname qui aura du être préalablement déclaré. Il n’y a pas lieu non plus de créer un module source.h pour les clones qui héritent également des fonctions du cloné.
clonof modname Clonage partiel de module.
hidjac :
hidjac signifie ‘jacobienne cachée’. Ce mot clé est à appliquer aux modules pour lesquels la jacobienne ne sera pas exprimée, et qui calcule
lui-même, dans le cas de l’adjoint, le gradient de la fonction de coût par rapport aux entrées du module (?entréesJ) et l’affecte au tableau
Ytbeta. Dans le cas du tangent linéaire c’est M’(xo).dx qui doit être propagé dans la zone de gradient en sortie (YG).
rem: si de plus, la directive ctin n’est pas utilisée pour le module, il devra en plus prendre lui-même en charge la propagation (dans un sens ou d
ans l’autre selon l’adjoint ou le tangent linéaire) des gradients entre lui et ses modules prédécesseurs.
Revenir à la page d'accueil