?> addLayer - WeAreCAS
deepLearn

addLayer

Descripción

La acción addLayer añade una capa a un modelo de Deep Learning. Esta acción forma parte del conjunto de acciones de Deep Learning, que proporciona un superconjunto de herramientas para modelar y puntuar con redes neuronales profundas (DNN), convolucionales (CNN) y recurrentes (RNN). Es fundamental para construir arquitecturas de red capa por capa.

deepLearn.addLayer / layer={...} modelTable={...} name='string' <nThreads=integer> <replace=TRUE | FALSE> <sharingWeights='string'> <srcLayers={'string-1' <, 'string-2', ...>}>;
Parámetros
ParámetroDescripción
layerEspecifica el tipo de capa y los parámetros relacionados para la capa. El valor que especifique para el parámetro 'type' determina los demás parámetros que se aplican.
modelTableEspecifica la tabla en memoria que representa el modelo al que se añadirá la capa.
nameEspecifica un nombre único para la capa. A medida que se añaden capas al modelo, se especifica el nombre de la capa utilizando el parámetro srcLayers. Los nombres de las capas no distinguen entre mayúsculas y minúsculas.
nThreadsEspecifica el número de hilos a utilizar para la acción. Por defecto, la acción utiliza todos los hilos disponibles.
replaceCuando se establece en True, una capa existente con el mismo nombre es reemplazada por esta nueva capa.
sharingWeightsNombra la capa cuyos pesos serán compartidos con la capa actual. Esto es útil para arquitecturas como las redes siamesas.
srcLayersEspecifica los nombres de las capas de origen para esta capa, definiendo las conexiones en el grafo del modelo.
Preparación de datos
Creación de un Modelo Inicial

Antes de añadir capas, primero necesitamos un modelo. El siguiente código utiliza la acción `buildModel` para crear un modelo vacío llamado 'my_model' en la caslib activa. Este modelo servirá como base para los ejemplos de `addLayer`.

1PROC CAS;
2DEEPLEARN.buildModel /
3 model={name='my_model', replace=true};
4RUN;
5QUIT;

Ejemplos

Este ejemplo muestra cómo añadir una capa de entrada a un modelo de deep learning. La capa de entrada es la primera capa y define las dimensiones de los datos de entrada.

Código SAS® / CAS
¡Copiado!
1PROC CAS; DEEPLEARN.addLayer / model='my_model' layer={type='input', nChannels=3, width=224, height=224, scale=1.0} name='InputLayer'; RUN; QUIT;
Resultado :
La acción añade una capa de entrada llamada 'InputLayer' al modelo 'my_model'. La tabla del modelo se actualiza para incluir esta nueva capa, que está configurada para aceptar imágenes en color (3 canales) de 224x224 píxeles.

Este ejemplo detalla cómo añadir una capa de convolución que se conecta a una capa de entrada previamente definida ('InputLayer'). Se especifican parámetros clave como el número de filtros, el tamaño del kernel, el paso (stride) y la función de activación.

Código SAS® / CAS
¡Copiado!
1PROC CAS; DEEPLEARN.addLayer / model='my_model' layer={type='convolution', nFilters=64, width=3, height=3, stride=1, act='relu', includeBias=true, init='xavier'} name='Conv1' srcLayers={'InputLayer'}; RUN; QUIT;
Resultado :
La acción añade una capa de convolución llamada 'Conv1' al modelo, conectada a 'InputLayer'. Esta capa tendrá 64 filtros, un kernel de 3x3, y utilizará la función de activación ReLU. Los pesos se inicializarán usando el método Xavier. La tabla del modelo 'my_model' se actualiza para reflejar esta nueva arquitectura.

Este ejemplo muestra cómo añadir una capa de agrupación (pooling) de tipo 'MAX' después de una capa convolucional ('Conv1'). Las capas de agrupación se utilizan comúnmente para reducir las dimensiones espaciales de los mapas de características.

Código SAS® / CAS
¡Copiado!
1PROC CAS; DEEPLEARN.addLayer / model='my_model' layer={type='pooling', pool='max', width=2, height=2, stride=2} name='Pool1' srcLayers={'Conv1'}; RUN; QUIT;
Resultado :
La acción añade una capa de agrupación máxima ('max pooling') llamada 'Pool1' al modelo, conectada a la capa 'Conv1'. Utilizará una ventana de 2x2 con un paso de 2, reduciendo a la mitad la altura y la anchura de los mapas de características de entrada.

Este ejemplo ilustra cómo añadir una capa totalmente conectada (densa) después de una capa de agrupación ('Pool1'). Estas capas se utilizan típicamente hacia el final de una red para realizar la clasificación.

Código SAS® / CAS
¡Copiado!
1PROC CAS; DEEPLEARN.addLayer / model='my_model' layer={type='fullconnect', n=512, act='relu', dropout=0.5} name='FC1' srcLayers={'Pool1'}; RUN; QUIT;
Resultado :
La acción añade una capa totalmente conectada llamada 'FC1' con 512 neuronas y una función de activación ReLU. También se aplica una tasa de dropout del 50% para regularización. La capa se conecta a la salida de 'Pool1'.

FAQ

¿Cuál es el propósito de la acción `addLayer` en el conjunto de acciones `deepLearn`?
¿Qué especifica el parámetro `layer` en la acción `addLayer`?
¿Para qué se utiliza el parámetro `modelTable`?
¿Cuál es la función del parámetro `name`?
¿Qué hace el parámetro `replace`?
¿Cómo se especifican las capas de origen para una nueva capa?
¿Es posible compartir pesos entre capas?

Escenarios asociados

Caso de uso
Clasificación de Imágenes de Productos para E-commerce

Una empresa minorista necesita un modelo de Deep Learning para clasificar automáticamente las imágenes de sus productos (ej. 'camisas', 'pantalones') y así agilizar la gestión d...

Caso de uso
Prueba de Robustez: Reemplazo de Capa y Manejo de Errores de Conexión

Durante la fase de experimentación de un modelo, un científico de datos necesita modificar la arquitectura, por ejemplo, cambiando el número de neuronas en una capa oculta. Este...

Caso de uso
Verificación de Firmas con una Red Siamesa usando Pesos Compartidos

Una institución financiera quiere un modelo que verifique si la firma de un cliente es auténtica comparándola con una firma de referencia. Una Red Siamesa es ideal para esto. Es...