?>
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.).
| Paramètre | Description |
|---|---|
| layer | Spé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. |
| modelTable | Spécifie la table en mémoire qui contient le modèle à modifier. |
| name | Spé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`. |
| nThreads | Spécifie le nombre de threads à utiliser pour l'exécution de l'action. |
| replace | Lorsqu'il est défini sur True, remplace une couche existante portant le même nom par cette nouvelle couche. |
| sharingWeights | Nomme la couche dont les poids seront partagés avec la couche actuelle. Utile pour des architectures comme les réseaux siamois. |
| srcLayers | Spécifie les noms des couches sources pour cette couche, définissant ainsi les connexions dans le graphe du modèle. |
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. */
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'.
| 1 | PROC CAS; |
| 2 | DEEPLEARN.addLayer / |
| 3 | modelTable={name='mon_modele'}, |
| 4 | name='conv1', |
| 5 | layer={type='CONVOLUTION', nFilters=32, width=3, height=3, stride=1}, |
| 6 | srcLayers={'entree'}; |
| 7 | QUIT; |
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.
| 1 | PROC CAS; |
| 2 | /* Étape 1: Construire le modèle initial avec une couche d'entrée */ |
| 3 | DEEPLEARN.buildModel / model={name='lenet5', replace=true}, type='CNN'; |
| 4 | DEEPLEARN.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 */ |
| 7 | DEEPLEARN.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 */ |
| 10 | DEEPLEARN.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 */ |
| 13 | DEEPLEARN.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 */ |
| 16 | DEEPLEARN.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 */ |
| 19 | DEEPLEARN.addLayer / modelTable={name='lenet5'}, name='fc1', layer={type='fullconnect', n=500, act='relu'}, srcLayers={'pool2'}; |
| 20 | |
| 21 | /* Étape 7: Ajouter la couche de sortie */ |
| 22 | DEEPLEARN.addLayer / modelTable={name='lenet5'}, name='output', layer={type='output', n=10, act='softmax'}, srcLayers={'fc1'}; |
| 23 | QUIT; |
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...
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è...
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...