addLayer - Comment puis-je connecter la nouvelle couche aux couches précédentes du modèle?

Topologie : Maîtrisez le Graphe Computationnel

Réponse

Vous utilisez le paramètre `srcLayers` (couches source) pour spécifier les noms des couches existantes auxquelles la nouvelle couche doit être connectée. Si ce paramètre est omis, la couche est généralement connectée à la dernière couche ajoutée au modèle.
SAS / CASL
proc cas;
   /* 1. Création du modèle */
   deepLearn.buildModel / modelTable={name="Modele_Branch", replace=true} type="DNN";

   /* 2. Racine : Entrée unique */
   deepLearn.addLayer / modelTable="Modele_Branch", name="Input",
      layer={type="INPUT", nChannels=1, width=28, height=28};

   /* 3. BRANCHE GAUCHE : Connectée à Input */
   deepLearn.addLayer / modelTable="Modele_Branch", name="Branche_G",
      srcLayers={"Input"}, /* Source explicite */
      layer={type="FULLCONNECT", n=50, act="RELU"};

   /* 4. BRANCHE DROITE : Connectée à Input (Parallèle à la gauche) */
   deepLearn.addLayer / modelTable="Modele_Branch", name="Branche_D",
      srcLayers={"Input"}, /* Même source que la branche gauche */
      layer={type="FULLCONNECT", n=50, act="TANH"};

   /* 5. FUSION : Concaténation des deux branches */
   deepLearn.addLayer / modelTable="Modele_Branch", name="Fusion",
      /* CRITIQUE : On liste les DEUX couches précédentes */
      srcLayers={"Branche_G", "Branche_D"}, 
      layer={type="CONCAT"};

   /* 6. Sortie finale */
   deepLearn.addLayer / modelTable="Modele_Branch", name="Output",
      srcLayers={"Fusion"},
      layer={type="OUTPUT", act="SOFTMAX"};
      
   /* Visualisation de la topologie dans le log */
   deepLearn.modelInfo / modelTable="Modele_Branch";
quit;
Cette réponse vous a-t-elle aidé ?
Sortez de la pensée linéaire pour créer des architectures avancées. Si l'omission du paramètre srcLayers fonctionne pour un empilement simple (A -> B -> C), elle vous limite considérablement. La puissance de SAS Viya Deep Learning réside dans sa capacité à gérer des Graphes Acycliques Dirigés (DAG). Le cas d'usage critique : Pour créer des architectures modernes comme ResNet (connexions résiduelles) ou Inception, vous devez connecter une couche à plusieurs sources simultanément. C'est ici que srcLayers devient indispensable : il accepte une liste de noms, permettant de fusionner des branches parallèles (via une couche de concaténation ou d'addition).
addLayer

deepLearn

Doc : addLayer