?> addLayer - WeAreCAS
deepLearn

addLayer

Description

L'action `addLayer` est une composante fondamentale de la construction de modèles de deep learning dans SAS Viya. Elle permet d'ajouter séquentiellement une nouvelle couche (layer) à une architecture de réseau neuronal existante. Chaque couche ajoute une transformation spécifique aux données qui la traversent, permettant au modèle d'apprendre des représentations de plus en plus complexes. Cette action est utilisée de manière itérative pour construire le modèle couche par couche, de la couche d'entrée (Input) à la couche de sortie (Output), en passant par diverses couches cachées (convolution, pooling, récurrentes, etc.).

deepLearn.addLayer { layer={...}, modelTable={...}, name='string', nThreads=integer, replace=boolean, sharingWeights='string', srcLayers={'string-1', 'string-2', ...} };
Paramètres
ParamètreDescription
layerSpécifie le type de couche et ses paramètres associés. Le type de couche que vous spécifiez détermine les autres paramètres applicables.
modelTableSpécifie la table en mémoire qui contient le modèle à modifier.
nameSpécifie un nom unique pour la couche. Ce nom est crucial car il sert de référence pour les couches suivantes via le paramètre `srcLayers`.
nThreadsSpécifie le nombre de threads à utiliser pour l'exécution de l'action.
replaceLorsqu'il est défini sur True, remplace une couche existante portant le même nom par cette nouvelle couche.
sharingWeightsNomme la couche dont les poids seront partagés avec la couche actuelle. Utile pour des architectures comme les réseaux siamois.
srcLayersSpécifie les noms des couches sources pour cette couche, définissant ainsi les connexions dans le graphe du modèle.
Préparation des Données
Création des Données d'Exemple

Ce bloc de code n'est pas directement applicable car l'action `addLayer` modifie un modèle existant plutôt que de traiter des données brutes. Les exemples montrent comment l'utiliser dans le contexte de la construction d'un modèle.

1/* L'action addLayer ne nécessite pas de données d'entrée directes, elle opère sur une table de modèle. */

Exemples

Cet exemple montre comment ajouter une couche de convolution de base à un modèle nommé 'mon_modele', en la connectant à une couche d'entrée existante nommée 'entree'.

Code SAS® / CAS
Copié !
1PROC CAS;
2DEEPLEARN.addLayer /
3 modelTable={name='mon_modele'},
4 name='conv1',
5 layer={type='CONVOLUTION', nFilters=32, width=3, height=3, stride=1},
6 srcLayers={'entree'};
7QUIT;
Résultat :
L'action ajoute la couche 'conv1' au modèle 'mon_modele'. La sortie confirmera l'ajout réussi de la couche dans la structure du modèle.

Cet exemple illustre la construction d'un réseau de type LeNet-5 en ajoutant séquentiellement des couches de convolution, de pooling, et entièrement connectées. Chaque appel à `addLayer` s'appuie sur la couche précédente.

Code SAS® / CAS
Copié !
1PROC CAS;
2/* Étape 1: Construire le modèle initial avec une couche d'entrée */
3DEEPLEARN.buildModel / model={name='lenet5', replace=true}, type='CNN';
4DEEPLEARN.addLayer / modelTable={name='lenet5'}, name='data', layer={type='input', nchannels=1, width=28, height=28};
5 
6/* Étape 2: Ajouter la première couche de convolution */
7DEEPLEARN.addLayer / modelTable={name='lenet5'}, name='conv1', layer={type='convolution', nFilters=20, width=5, height=5, act='relu'}, srcLayers={'data'};
8 
9/* Étape 3: Ajouter la première couche de pooling */
10DEEPLEARN.addLayer / modelTable={name='lenet5'}, name='pool1', layer={type='pooling', width=2, height=2, stride=2, pool='max'}, srcLayers={'conv1'};
11 
12/* Étape 4: Ajouter la seconde couche de convolution */
13DEEPLEARN.addLayer / modelTable={name='lenet5'}, name='conv2', layer={type='convolution', nFilters=50, width=5, height=5, act='relu'}, srcLayers={'pool1'};
14 
15/* Étape 5: Ajouter la seconde couche de pooling */
16DEEPLEARN.addLayer / modelTable={name='lenet5'}, name='pool2', layer={type='pooling', width=2, height=2, stride=2, pool='max'}, srcLayers={'conv2'};
17 
18/* Étape 6: Ajouter une couche entièrement connectée */
19DEEPLEARN.addLayer / modelTable={name='lenet5'}, name='fc1', layer={type='fullconnect', n=500, act='relu'}, srcLayers={'pool2'};
20 
21/* Étape 7: Ajouter la couche de sortie */
22DEEPLEARN.addLayer / modelTable={name='lenet5'}, name='output', layer={type='output', n=10, act='softmax'}, srcLayers={'fc1'};
23QUIT;
Résultat :
Une série de confirmations indiquant l'ajout de chaque couche ('data', 'conv1', 'pool1', 'conv2', 'pool2', 'fc1', 'output') au modèle 'lenet5'. Le modèle est maintenant prêt pour l'entraînement.

FAQ

Quel est le but de l'action `addLayer` dans SAS Viya?
Quels sont les paramètres obligatoires pour utiliser l'action `addLayer`?
Quels types de couches puis-je ajouter avec l'action `addLayer`?
Comment puis-je connecter la nouvelle couche aux couches précédentes du modèle?
Est-il possible de remplacer une couche existante avec `addLayer`?

Scénarios associés

Cas d'usage
Scénario Standard : Construction d'un CNN pour la Classification d'Images de Produits

Une entreprise de e-commerce souhaite automatiser la catégorisation de ses produits (vêtements, chaussures, accessoires) en se basant sur leurs photos. Ce scénario teste la cons...

Cas d'usage
Scénario Cas Limite : Remplacement de Couche et Gestion d'Erreurs

Une équipe de Data Scientists expérimente sur une architecture de modèle. Ils doivent remplacer une couche pour améliorer les performances et veulent s'assurer que le système gè...

Cas d'usage
Scénario Complexe : Réseau Siamois avec Poids Partagés pour la Vérification de Signatures

Une banque veut développer un système pour vérifier l'authenticité des signatures des clients en comparant une signature entrante à une signature de référence. Ce scénario teste...