Main Content

imageInputLayer

Capa de entrada de imagen

Descripción

Una capa de entrada de imagen introduce imágenes 2D en una red neuronal y aplica normalización de datos.

Para una entrada de imagen 3D, utilice image3dInputLayer.

Creación

Descripción

layer = imageInputLayer(inputSize) devuelve una capa de entrada de imagen y especifica la propiedad InputSize.

ejemplo

layer = imageInputLayer(inputSize,Name=Value) establece las propiedades opcionales Normalization, NormalizationDimension, Mean, StandardDeviation, Min, Max, SplitComplexInputs y Name usando uno o más argumentos nombre-valor.

Propiedades

expandir todo

Entrada de imagen

Esta propiedad o parámetro es de solo lectura.

Tamaño de los datos de entrada, especificado como un vector fila de enteros [h w c], donde h, w y c corresponden a la altura, la anchura y el número de canales de las imágenes, respectivamente.

  • Para imágenes en escala de grises, especifique un vector con c igual a 1.

  • Para imágenes en RGB, especifique un vector con c igual a 3.

  • Para imágenes multiespectrales o hiperespectrales, especifique un vector con c igual al número de canales.

Para una entrada de volumen o imagen 3D, utilice image3dInputLayer.

Esta propiedad o parámetro es de solo lectura.

Normalización de datos para aplicar cada vez que los datos se propagan hacia adelante a través de la capa de entrada, especificada como una de las siguientes:

  • "zerocenter": restar la media especificada por Mean.

  • "zscore": restar la media especificada por Mean y dividir por StandardDeviation.

  • "rescale-symmetric": cambiar la escala de la entrada para que esté en el intervalo [-1, 1] empleando los valores mínimo y máximo especificados por Min y Max, respectivamente.

  • "rescale-zero-one": cambiar la escala de la entrada para que esté en el intervalo [0, 1] empleando los valores mínimo y máximo especificados por Min y Max, respectivamente.

  • "none": no normalizar los datos de entrada.

  • Identificador de función: normalizar los datos empleando la función especificada. La función debe tener la forma Y = f(X), donde X es el dato de entrada y la salida Y es el dato normalizado.

Sugerencia

De forma predeterminada, el software calcula automáticamente las estadísticas de normalización cuando se utiliza la función trainnet. Para ahorrar tiempo durante el entrenamiento, especifique las estadísticas necesarias para la normalización y configure la opción ResetInputNormalization en trainingOptions como 0 (false).

El objeto ImageInputLayer almacena esta propiedad como un vector de caracteres o un identificador de función.

Dimensión de normalización, especificada como una de las siguientes opciones:

  • "auto": si la opción de entrenamiento es 0 (false) y especifica cualquiera de las estadísticas de normalización (Mean, StandardDeviation, Min o Max), normalizar las dimensiones que coinciden con las estadísticas. De lo contrario, volver a calcular las estadísticas en el momento del entrenamiento y aplicar la normalización por canal.

  • "channel": normalización por canal.

  • "element": normalización por elemento.

  • "all": normalizar todos los valores utilizando estadísticas escalares.

El objeto ImageInputLayer almacena esta propiedad como un vector de caracteres.

Media para normalización cero a centro y puntuación Z, especificada como un arreglo de h por w por c, un arreglo de medias de canal de 1 por 1 por c, un escalar numérico o [], donde h, w y c corresponden a la altura, la anchura y el número de canales de la media, respectivamente.

Para especificar la propiedad Mean, la propiedad Normalization debe ser "zerocenter" o "zscore". Si Mean es [], el software establece automáticamente la propiedad en el momento del entrenamiento o la inicialización:

  • La función trainnet calcula la media con los datos de entrenamiento y utiliza el valor resultante.

  • La función initialize y la función dlnetwork cuando la opción Initialize es 1 (true) establecen la propiedad en 0.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Desviación estándar para normalización de puntuación Z, especificada como un arreglo de h por w por c, un arreglo de medias de canal de 1 por 1 por c, un escalar numérico o [], donde h, w y c corresponden a la altura, la anchura y el número de canales de la desviación estándar, respectivamente.

Para especificar la propiedad StandardDeviation, la propiedad Normalization debe ser "zscore". Si StandardDeviation es [], el software establece automáticamente la propiedad en el momento del entrenamiento o la inicialización:

  • La función trainnet calcula la desviación estándar con los datos de entrenamiento y utiliza el valor resultante.

  • La función initialize y la función dlnetwork cuando la opción Initialize es 1 (true) establecen la propiedad en 1.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Valor mínimo para reescalar, especificado como un arreglo de h por w por c, un arreglo de valores mínimos por canal de 1 por 1 por c, un escalar numérico o [], donde h, w y c corresponden a la altura, la anchura y el número de canales de los valores mínimos, respectivamente.

Para especificar la propiedad Min, la Normalization debe ser "rescale-symmetric" o "rescale-zero-one". Si Min es [], el software establece automáticamente la propiedad en el momento del entrenamiento o la inicialización:

  • La función trainnet calcula el valor mínimo con los datos de entrenamiento y utiliza el valor resultante.

  • La función initialize y la función dlnetwork cuando la opción Initialize es 1 (true) establecen la propiedad en -1 y 0 cuando Normalization es "rescale-symmetric" y "rescale-zero-one", respectivamente.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Valor máximo para reescalar, especificado como un arreglo de h por w por c, un arreglo de valores máximos por canal de 1 por 1 por c, un escalar numérico o [], donde h, w y c corresponden a la altura, la anchura y el número de canales de los valores máximos, respectivamente.

Para especificar la propiedad Max, la Normalization debe ser "rescale-symmetric" o "rescale-zero-one". Si Max es [], el software establece automáticamente la propiedad en el momento del entrenamiento o la inicialización:

  • La función trainnet calcula el valor máximo con los datos de entrenamiento y utiliza el valor resultante.

  • La función initialize y la función dlnetwork cuando la opción Initialize es 1 (true) establecen la propiedad en 1.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Esta propiedad o parámetro es de solo lectura.

Marcador para dividir datos de entrada en componentes reales e imaginarios, especificado como uno de estos valores:

  • 0 (false): no dividir los datos de entrada.

  • 1 (true): dividir los datos de entrada en componentes reales e imaginarios.

Cuando SplitComplexInputs es 1, entonces la capa produce el doble de canales que los datos de entrada que existen. Por ejemplo, si los datos de entrada tienen valores complejos con numChannels canales, entonces la capa produce datos con 2*numChannels canales, donde los canales 1 a numChannels contienen los componentes reales de los datos de entrada y los canales numChannels+1 a 2*numChannels contienen los componentes imaginarios de los datos de entrada. Si los datos de entrada son reales, entonces los canales numChannels+1 a 2*numChannels son todos cero.

Para introducir datos de valores complejos en una red neuronal, la opción SplitComplexInputs de la capa de entrada debe ser 1 (true).

Para ver un ejemplo de cómo entrenar una red con datos con valores complejos, consulte Train Network with Complex-Valued Data.

Capa

Nombre de la capa, especificado como un vector de caracteres o un escalar de cadena. Para entradas en forma de arreglo Layer, las funciones trainnet y dlnetwork asignan automáticamente nombres a las capas con el nombre "".

El objeto ImageInputLayer almacena esta propiedad como un vector de caracteres.

Tipos de datos: char | string

Esta propiedad o parámetro es de solo lectura.

Número de entradas de la capa. La capa no tiene entradas.

Tipos de datos: double

Esta propiedad o parámetro es de solo lectura.

Nombres de las entradas de la capa. La capa no tiene entradas.

Tipos de datos: cell

Esta propiedad o parámetro es de solo lectura.

Número de salidas de la capa, devuelto como 1. Esta capa solo tiene una salida.

Tipos de datos: double

Esta propiedad o parámetro es de solo lectura.

Nombres de salida, devueltos como {'out'}. Esta capa solo tiene una salida.

Tipos de datos: cell

Ejemplos

contraer todo

Cree una capa de entrada de imagen para imágenes en color de 28 por 28.

inputlayer = imageInputLayer([28 28 3])
inputlayer = 
  ImageInputLayer with properties:

                      Name: ''
                 InputSize: [28 28 3]
        SplitComplexInputs: 0

   Hyperparameters
          DataAugmentation: 'none'
             Normalization: 'zerocenter'
    NormalizationDimension: 'auto'
                      Mean: []

Incluya una capa de entrada de imagen en un arreglo Layer.

layers = [
    imageInputLayer([28 28 1])
    convolution2dLayer(5,20)
    reluLayer
    maxPooling2dLayer(2,Stride=2)
    fullyConnectedLayer(10)
    softmaxLayer]
layers = 
  6x1 Layer array with layers:

     1   ''   Image Input       28x28x1 images with 'zerocenter' normalization
     2   ''   2-D Convolution   20 5x5 convolutions with stride [1  1] and padding [0  0  0  0]
     3   ''   ReLU              ReLU
     4   ''   2-D Max Pooling   2x2 max pooling with stride [2  2] and padding [0  0  0  0]
     5   ''   Fully Connected   10 fully connected layer
     6   ''   Softmax           softmax

Algoritmos

expandir todo

Referencias

[1] Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "ImageNet Classification with Deep Convolutional Neural Networks." Communications of the ACM 60, no. 6 (May 24, 2017): 84–90. https://doi.org/10.1145/3065386

[2] Cireşan, D., U. Meier, J. Schmidhuber. "Multi-column Deep Neural Networks for Image Classification". IEEE Conference on Computer Vision and Pattern Recognition, 2012.

Capacidades ampliadas

Historial de versiones

Introducido en R2016a

expandir todo