Cree una red gráfica acíclica dirigida (DAG) simple de deep learning. Entrene a la red para clasificar imágenes de dígitos. La red simple de este ejemplo está compuesta por lo siguiente:
Una rama principal con capas conectadas de forma secuencial.
Una conexión de atajo que contiene una sola capa convolucional de 1 por 1. Las conexiones de atajo permiten que los gradientes de parámetros fluyan con mayor facilidad desde la capa de salida a las primeras capas de la red.
Cree la rama principal de la red como un arreglo de capas. La capa de suma añade varias entradas elemento por elemento. Especifique el número de entradas que debe sumar la capa de suma. Para añadir conexiones con facilidad más tarde, especifique los nombres de la primera capa ReLU y de la capa de suma.
Cree una gráfica de capas a partir del arreglo de capas. layerGraph
conecta todas las capas de layers
secuencialmente. Represente la gráfica de capas.
Cree la capa convolucional de 1 por 1 y añádala a la gráfica de capas. Especifique el número de filtros convolucionales y el tramo, para que el tamaño de activación coincida con el tamaño de activación de la tercera capa ReLU. Este ajuste permite que la capa de suma añada las salidas de la tercera capa ReLU y de la capa convolucional de 1 por 1. Para comprobar que la capa se encuentra en la gráfica, represente la gráfica de capas.
Cree la conexión de atajo desde la capa 'relu_1'
a la capa 'add'
. Dado que especificó 2 como el número de entradas de la capa de suma durante su creación, la capa tiene dos entradas llamadas 'in1'
y 'in2'
. La tercera capa ReLU ya está conectada a la entrada 'in1'
. Conecte la capa 'relu_1'
a la capa 'skipConv'
, y la capa 'skipConv'
a la entrada 'in2'
de la capa 'add'
. Ahora, la capa de suma sumará las salidas de la tercera capa ReLU y de la capa 'skipConv'
. Para comprobar que las capas se han conectado correctamente, represente la gráfica de capas.
Cargue los datos de entrenamiento y validación, que están formados por imágenes de dígitos de escala de grises de 28 por 28.
Especifique las opciones de entrenamiento y entrene la red. trainNetwork
valida la red usando los datos de validación cada ValidationFrequency
iteraciones.
Muestre las propiedades de la red entrenada. La red es un objeto DAGNetwork
.
net =
DAGNetwork with properties:
Layers: [16x1 nnet.cnn.layer.Layer]
Connections: [16x2 table]
InputNames: {'imageinput'}
OutputNames: {'classoutput'}
Clasifique las imágenes de validación y calcule la precisión. La red es muy precisa.