Contenido principal

layerGraph

(No recomendado) Gráfica de capas de red de deep learning

Los objetos LayerGraph no están recomendados. En su lugar, use los objetos dlnetwork. Para obtener más información, consulte Historial de versiones.

Descripción

Una gráfica de capas especifica la arquitectura de una red neuronal como una gráfica acíclica dirigida (DAG) de capas de deep learning. Las capas pueden tener varias entradas y varias salidas.

Creación

Descripción

lgraph = layerGraph crea una gráfica de capas vacía que no contiene capas. Puede añadir capas a la gráfica vacía usando la función addLayers.

ejemplo

lgraph = layerGraph(layers) crea una gráfica de capas a partir de un arreglo de capas de red, y establece la propiedad Layers. Las capas de lgraph se conectan en el mismo orden secuencial de layers.

lgraph = layerGraph(net) extrae la gráfica de capas de un objeto SeriesNetwork, DAGNetwork o dlnetwork. Por ejemplo, puede extraer la gráfica de capas de una red preentrenada para realizar la transferencia del aprendizaje.

Argumentos de entrada

expandir todo

Red de deep learning, especificada como un objeto SeriesNetwork, DAGNetwork o dlnetwork.

Propiedades

expandir todo

Esta propiedad o parámetro es de solo lectura.

Capas de la red, especificadas como un arreglo Layer.

Esta propiedad o parámetro es de solo lectura.

Conexiones de la capa, especificadas como una tabla con dos columnas.

Cada fila de la tabla representa una conexión en la gráfica de capas. La primera columna, Source, especifica el origen de cada conexión. La segunda columna, Destination, especifica el destino de cada conexión. Las fuentes y los destinos de la conexión pueden ser nombres de capa o tener la forma "layerName/IOName", donde "IOName" es el nombre de la entrada o la salida de la capa.

Tipos de datos: table

Esta propiedad o parámetro es de solo lectura.

Nombres de las capas de entrada, especificados como un arreglo de celdas de vectores de caracteres.

Tipos de datos: cell

Esta propiedad o parámetro es de solo lectura.

Nombres de las capas de salida, especificados como un arreglo de celdas de vectores de caracteres.

Tipos de datos: cell

Funciones del objeto

addLayersAñadir capas a una red neuronal
removeLayersEliminar capas de una red neuronal
replaceLayerReplace layer in neural network
connectLayersConectar capas en una red neuronal
disconnectLayersDesconectar capas en una red neuronal
plotRepresentar una arquitectura de red neuronal

Ejemplos

contraer todo

Cree una gráfica de capas simple de deep learning.

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.

layers = [
    imageInputLayer([28 28 1])
    
    convolution2dLayer(5,16,'Padding','same')
    batchNormalizationLayer
    reluLayer('Name','relu_1')
    
    convolution2dLayer(3,32,'Padding','same','Stride',2)
    batchNormalizationLayer
    reluLayer
    convolution2dLayer(3,32,'Padding','same')
    batchNormalizationLayer
    reluLayer
    
    additionLayer(2,'Name','add')
    
    averagePooling2dLayer(2,'Stride',2)
    fullyConnectedLayer(10)
    softmaxLayer
    classificationLayer];

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.

lgraph = layerGraph(layers);
figure
plot(lgraph)

Figure contains an axes object. The axes object contains an object of type graphplot.

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.

skipConv = convolution2dLayer(1,32,'Stride',2,'Name','skipConv');
lgraph = addLayers(lgraph,skipConv);
figure
plot(lgraph)

Figure contains an axes object. The axes object contains an object of type graphplot.

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.

lgraph = connectLayers(lgraph,'relu_1','skipConv');
lgraph = connectLayers(lgraph,'skipConv','add/in2');
figure
plot(lgraph);

Figure contains an axes object. The axes object contains an object of type graphplot.

Limitaciones

  • Los objetos de gráfica de capas no contienen información de discretización. Si se extrae la gráfica de capas de una red discretizada y, luego, se vuelve a ensamblar la red empleando assembleNetwork o dlnetwork, se elimina información de discretización de la red.

Historial de versiones

Introducido en R2017b

contraer todo