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.

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. Encierre el nombre de la propiedad entre comillas.

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.

Ejemplo: [224 224 3]

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 = func(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 al usar la función trainNetwork. 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).

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

  • 'auto': si la opción de entrenamiento es 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.

Tipos de datos: char | string

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.

Si especifica la propiedad Mean, entonces Normalization debe ser 'zerocenter' o 'zscore'. Si Mean es [], entonces la función trainNetwork calcula la media. Para entrenar un objeto dlnetwork empleando un bucle de entrenamiento personalizado o ensamblar a una red sin entrenarla empleando la función assembleNetwork, debe establecer la propiedad Mean en un escalar numérico o en un arreglo numérico.

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.

Si especifica la propiedad StandardDeviation, entonces Normalization debe ser 'zscore'. Si StandardDeviation es [], entonces la función trainNetwork calcula la desviación estándar. Para entrenar un objeto dlnetwork empleando un bucle de entrenamiento personalizado o ensamblar a una red sin entrenarla empleando la función assembleNetwork, debe establecer la propiedad StandardDeviation en un escalar numérico o en un arreglo numérico.

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.

Si especifica la propiedad Min, entonces Normalization debe ser 'rescale-symmetric' o 'rescale-zero-one'. Si Min es [], entonces la función trainNetwork calcula los valores mínimos. Para entrenar un objeto dlnetwork empleando un bucle de entrenamiento personalizado o ensamblar a una red sin entrenarla empleando la función assembleNetwork, debe establecer la propiedad Min en un escalar numérico o en un arreglo numérico.

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.

Si especifica la propiedad Max, entonces Normalization debe ser 'rescale-symmetric' o 'rescale-zero-one'. Si Max es [], entonces la función trainNetwork calcula los valores máximos. Para entrenar un objeto dlnetwork empleando un bucle de entrenamiento personalizado o ensamblar a una red sin entrenarla empleando la función assembleNetwork, debe establecer la propiedad Max en un escalar numérico o en un arreglo numérico.

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.

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

Esta propiedad o parámetro es de solo lectura.

Nota

No se recomienda el uso de la propiedad DataAugmentation. Para preprocesar imágenes con recorte, reflexión y otras transformaciones geométricas, utilice augmentedImageDatastore en su lugar.

Transformadas de aumento de datos para utilizar durante el entrenamiento, especificadas como una de las siguientes.

  • 'none': sin aumento de datos.

  • 'randcrop': recortar aleatoriamente de la imagen de entrenamiento. El recorte aleatorio es del mismo tamaño que la entrada.

  • 'randfliplr': voltear aleatoriamente imágenes de entrada horizontalmente con una posibilidad del 50%.

  • Arreglo de celdas de 'randcrop' y 'randfliplr'. El software aplica el aumento en el orden especificado en el arreglo de celdas.

El aumento de datos de imagen es otra forma de reducir el sobreajuste [1], [2].

Tipos de datos: string | char | cell

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 trainNetwork, assembleNetwork, layerGraph y dlnetwork asignan automáticamente nombres a las capas con el nombre ''.

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. Esta capa solo tiene una salida.

Tipos de datos: double

Esta propiedad o parámetro es de solo lectura.

Nombres de las salidas de la capa. 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 con el nombre 'input'. De forma predeterminada, la capa realiza la normalización de datos restando la imagen media del conjunto de entrenamiento de cada imagen de entrada.

inputlayer = imageInputLayer([28 28 3],'Name','input')
inputlayer = 
  ImageInputLayer with properties:

                      Name: 'input'
                 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
    classificationLayer]
layers = 
  7x1 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
     7   ''   Classification Output   crossentropyex

Referencias

[1] Krizhevsky, A., I. Sutskever, and G. E. Hinton. "ImageNet Classification with Deep Convolutional Neural Networks". Advances in Neural Information Processing Systems. Vol 25, 2012.

[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