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
devuelve una capa de entrada de imagen y especifica la propiedad layer
= imageInputLayer(inputSize
)InputSize
.
establece las propiedades opcionales layer
= imageInputLayer(inputSize
,Name,Value
)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
Entrada de imagen
InputSize
— Tamaño de la entrada
vector fila de enteros
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 a1
.Para imágenes en RGB, especifique un vector con
c
igual a3
.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]
Normalization
— Normalización de datos
'zerocenter'
(predeterminado) | 'zscore'
| 'rescale-symmetric'
| 'rescale-zero-one'
| 'none'
| identificador de función
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 porMean
.'zscore'
: restar la media especificada porMean
y dividir porStandardDeviation
.'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 porMin
yMax
, 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 porMin
yMax
, 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)
, dondeX
es el dato de entrada y la salidaY
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
).
NormalizationDimension
— Dimensión de normalización
'auto'
(predeterminado) | 'channel'
| 'element'
| 'all'
Dimensión de normalización, especificada como una de las siguientes opciones:
'auto'
: si la opción de entrenamiento esfalse
y especifica cualquiera de las estadísticas de normalización (Mean
,StandardDeviation
,Min
oMax
), 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
Mean
— Media para normalización cero a centro y puntuación Z
[]
(predeterminado) | Arreglo 3D | Escalar numérico
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
StandardDeviation
— Desviación estándar para normalización de puntuación Z
[]
(predeterminado) | Arreglo 3D | Escalar numérico
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
Min
— Valor mínimo para reescalar
[]
(predeterminado) | Arreglo 3D | Escalar numérico
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
Max
— Valor máximo para reescalar
[]
(predeterminado) | Arreglo 3D | Escalar numérico
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
SplitComplexInputs
— Marcador para dividir datos de entrada en componentes reales e imaginarios
0
(false
) (predeterminado) | 1
(true
)
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.
DataAugmentation
— Transformadas de aumento de datos
'none'
(predeterminado) | 'randcrop'
| 'randfliplr'
| arreglo de celdas de 'randcrop'
y 'randfliplr'
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
Name
— Nombre de la capa
''
(predeterminado) | vector de caracteres | escalar de cadena
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
NumInputs
— Número de entradas
0 (predeterminado)
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
InputNames
— Nombres de las entradas
{}
(predeterminado)
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
NumOutputs
— Número de salidas
1
(predeterminado)
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
OutputNames
— Nombres de salida
{'out'}
(predeterminado)
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
Crear una capa de entrada de imagen
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
Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.
Notas y limitaciones de uso:
La generación de código no admite el tipo de datos
'Normalization'
especificado usando un identificador de función.La generación de código no admite las entradas complejas ni la opción
'SplitComplexInputs'
.
Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.
Notas y limitaciones de uso:
La generación de código no admite el tipo de datos
'Normalization'
especificado usando un identificador de función.La generación de código no admite las entradas complejas ni la opción
'SplitComplexInputs'
.
Historial de versiones
Introducido en R2016aR2019b: La propiedad AverageImage
se eliminará
AverageImage
se eliminará. En su lugar, use Mean
. Para actualizar el código, reemplace todas las instancias de AverageImage
con Mean
. No existen diferencias entre las propiedades que requieren actualizaciones adicionales en su código.
R2019b: imageInputLayer
y image3dInputLayer
, de forma predeterminada, usan normalización por canal
A partir de la versión R2019b, imageInputLayer
y image3dInputLayer
, de forma predeterminada, usan normalización por canal. En versiones anteriores, estas capas usan normalización por elemento. Para reproducir este comportamiento, establezca la opción NormalizationDimension
de estas capas en 'element'
.
Consulte también
trainNetwork
| convolution2dLayer
| fullyConnectedLayer
| maxPooling2dLayer
| augmentedImageDatastore
| image3dInputLayer
| Deep Network Designer | featureInputLayer
Abrir ejemplo
Tiene una versión modificada de este ejemplo. ¿Desea abrir este ejemplo con sus modificaciones?
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)