Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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.

EscribaDescripció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:

 Plantilla de capa intermedia

 Plantilla de capa de salida de clasificación

 Plantilla de capa de salida de regresión

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.

Network diagram showing the flow of data through a neural network during training.

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.

Network diagram showing the flow of data through a neural network during training.

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

| | | | | | | | | |

Temas relacionados