Definir capas de deep learning personalizadas
Sugerencia
En esta sección se explica cómo definir capas de deep learning personalizadas para usarlas en sus problemas. Para ver una lista de capas integradas en Deep Learning Toolbox™, consulte Lista de capas de deep learning.
Puede definir sus propias capas de deep learning personalizadas para usarlas en su tarea. Puede especificar una función de pérdida personalizada usando una capa de salida personalizada y definir capas personalizadas con o sin parámetros que se puedan aprender y de estado. Después de definir una capa personalizada, puede comprobar que es válida y compatible con la GPU, y que devuelve como salida gradientes correctamente definidos.
En esta sección se explica la arquitectura de capas de deep learning y cómo definir capas personalizadas para usarlas en sus tareas.
Escriba | Descripción |
---|---|
Capas intermedias | Defina una capa de deep learning personalizada y especifique parámetros que se aprenden y parámetros de estado opcionales. Para obtener más información, consulte . Para ver un ejemplo de cómo definir una capa personalizada con parámetros que se aprenden, consulte Define Custom Deep Learning Layer with Learnable Parameters. Para ver un ejemplo de cómo definir una capa personalizada con varias entradas, consulte Define Custom Deep Learning Layer with Multiple Inputs. |
Capa de clasificación de salida | Defina una capa de salida de clasificación personalizada y especifique una función de pérdida. Para obtener más información, consulte Define Custom Deep Learning Output Layers. Para ver un ejemplo de cómo definir una capa de salida de clasificación personalizada y especificar una función de pérdida, consulte Define Custom Classification Output Layer. |
Capa de salida de regresión | Defina una capa de salida de regresión personalizada y especifique una función de pérdida. Para obtener más información, consulte Define Custom Deep Learning Output Layers. Para ver un ejemplo de cómo definir una capa de salida de regresión personalizada y especificar una función de pérdida, consulte Define Custom Regression Output Layer. |
Plantillas de capas
Puede utilizar las siguientes plantillas para definir nuevas capas:
Arquitectura de capa intermedia
Durante el entrenamiento, el software realiza de forma iterativa pases hacia delante y hacia atrás a través de la red.
Durante un pase hacia delante a través de la red, cada capa coge las salidas de las capas anteriores, aplica una función y luego devuelve como salida (propagación hacia delante) los resultados a las siguientes capas. Las capas que tienen estado, como las capas de LSTM, también actualizan su estado.
Las capas pueden tener varias entradas o salidas. Por ejemplo, una capa puede coger X1, …, XN de varias capas anteriores y propagar hacia delante las salidas Z1, …, ZM a las siguientes capas.
Al final de cada pase hacia delante de la red, la capa de salida calcula la pérdida L entre las predicciones Y y los objetivos T.
Durante el pase hacia atrás a través de la red, cada capa coge las derivadas de la pérdida con respecto a las salidas de la capa, calcula las derivadas de la pérdida L con respecto a las entradas y propaga los resultados hacia atrás. Si la capa cuenta con parámetros que se aprenden, también calculará las derivadas de los pesos de la capa (parámetros que se aprenden). La capa utiliza las derivadas de los pesos para actualizar los parámetros que se aprenden.
El siguiente gráfico describe el flujo de datos a través de una red neuronal profunda y destaca el flujo de datos a través de una capa con una única entrada X, una única salida Z y un parámetro que se aprende W.
Para obtener más información sobre capas intermedias personalizadas, consulte .
Arquitectura de capa de salida
Al final de cada pase hacia delante durante el entrenamiento, una capa de salida coge las salidas Y de la capa anterior (las predicciones de la red) y calcula la pérdida L entre estas predicciones y los objetivos del entrenamiento. La capa de salida calcula las derivadas de la pérdida L con respecto a las predicciones Y y devuelve como salida (propagación hacia atrás) los resultados a la capa anterior.
El siguiente gráfico describe el flujo de datos a través de una red neuronal y una capa de salida.
Para obtener más información, consulte Define Custom Deep Learning Output Layers.
Comprobar la validez de una capa personalizada
Si crea una capa de deep learning personalizada, puede utilizar la función checkLayer
para comprobar si es válida. La función comprueba la validez de las capas, la compatibilidad con la GPU, si los gradientes están correctamente definidos y la compatibilidad con la generación de código. Para comprobar si una capa es válida, ejecute el siguiente comando:
checkLayer(layer,layout)
layer
es una instancia de la capa y layout
es un objeto networkDataLayout
que especifica los tamaños y formatos de datos válidos para las salidas de la capa. Para realizar una comprobación con varias observaciones, utilice la opción ObservationDimension
. Para comprobar la compatibilidad con la generación de código, establezca la opción CheckCodegenCompatibility
en 1
(verdadero). Para entradas de gran tamaño, las comprobaciones de gradiente tardan más en ejecutarse. Para acelerar el proceso, especifique un tamaño de entrada válido más pequeño.Para obtener más información, consulte Check Custom Layer Validity.
Consulte también
functionLayer
| checkLayer
| setLearnRateFactor
| setL2Factor
| getLearnRateFactor
| getL2Factor
| findPlaceholderLayers
| replaceLayer
| assembleNetwork
| PlaceholderLayer
| networkDataLayout
Temas relacionados
- Define Custom Deep Learning Output Layers
- Define Custom Deep Learning Layer with Learnable Parameters
- Define Custom Deep Learning Layer with Multiple Inputs
- Define Custom Deep Learning Layer with Formatted Inputs
- Define Custom Recurrent Deep Learning Layer
- Define Custom Deep Learning Layer for Code Generation
- Define Custom Classification Output Layer
- Define Custom Regression Output Layer
- Custom Layer Function Acceleration
- Deep Learning Network Composition
- Define Nested Deep Learning Layer Using Network Composition
- Check Custom Layer Validity
- Lista de capas de deep learning