?>Array ( [lang] => fr [id] => 115 ) Scénario Standard : Construction d'un CNN pour la Classification d'Images de Produits - WeAreCAS
deepLearn addLayer

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

Scénario de test & Cas d'usage

Contexte Métier

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 construction d'une architecture de réseau de neurones convolutif (CNN) simple, couche par couche, pour réaliser cette tâche.
Préparation des Données

Aucune donnée n'est nécessaire pour ce scénario. L'action `addLayer` opère sur une table de modèle en mémoire pour en construire l'architecture, avant la phase d'entraînement qui, elle, utilisera des données.

Copié !
1/* L'action addLayer ne manipule pas de données d'entraînement directement. Elle construit la structure du modèle. */

Étapes de réalisation

1
Initialisation du modèle CNN et ajout de la couche d'entrée pour des images de 64x64 pixels en couleur (3 canaux).
Copié !
1PROC CAS;
2DEEPLEARN.buildModel / model={name='cnn_produits', replace=true}, type='CNN';
3DEEPLEARN.addLayer / modelTable={name='cnn_produits'}, name='entree', layer={type='input', nchannels=3, width=64, height=64, scale=1.0/255.0};
4QUIT;
2
Ajout d'une première couche de convolution (32 filtres) suivie d'une couche de pooling (max pooling) pour extraire les premiers traits des images.
Copié !
1PROC CAS;
2DEEPLEARN.addLayer / modelTable={name='cnn_produits'}, name='conv1', layer={type='convolution', nFilters=32, width=3, height=3, act='relu'}, srcLayers={'entree'};
3DEEPLEARN.addLayer / modelTable={name='cnn_produits'}, name='pool1', layer={type='pooling', width=2, height=2, stride=2, pool='max'}, srcLayers={'conv1'};
4QUIT;
3
Ajout d'une couche entièrement connectée (fully connected) de 128 neurones pour agréger les caractéristiques extraites.
Copié !
1PROC CAS;
2DEEPLEARN.addLayer / modelTable={name='cnn_produits'}, name='fc1', layer={type='fullconnect', n=128, act='relu', dropout=0.5}, srcLayers={'pool1'};
3QUIT;
4
Ajout de la couche de sortie avec 10 neurones (un par catégorie de produit) et une fonction d'activation softmax pour la classification.
Copié !
1PROC CAS;
2DEEPLEARN.addLayer / modelTable={name='cnn_produits'}, name='sortie', layer={type='output', n=10, act='softmax'}, srcLayers={'fc1'};
3QUIT;

Résultat Attendu


Le modèle 'cnn_produits' est créé avec succès. Sa structure contient séquentiellement les couches 'entree', 'conv1', 'pool1', 'fc1', et 'sortie'. Chaque appel à l'action `addLayer` doit retourner une note de succès dans le log CAS, confirmant l'ajout de la couche spécifiée au graphe du modèle.