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;
deepLearn