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.
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
.
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 = f(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 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.
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 es0
(false
) 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.
El objeto ImageInputLayer
almacena esta propiedad como un vector de caracteres.
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.
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óndlnetwork
cuando la opciónInitialize
es1
(true
) establecen la propiedad en0
.
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.
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óndlnetwork
cuando la opciónInitialize
es1
(true
) establecen la propiedad en1
.
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.
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óndlnetwork
cuando la opciónInitialize
es1
(true
) establecen la propiedad en-1
y0
cuandoNormalization
es"rescale-symmetric"
y"rescale-zero-one"
, respectivamente.
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.
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óndlnetwork
cuando la opciónInitialize
es1
(true
) establecen la propiedad en1
.
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
(true
).
Para ver un ejemplo de cómo entrenar una red con datos con valores complejos, consulte Train Network with Complex-Valued Data.
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 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
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, devuelto como 1
. 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 salida, devueltos como {'out'}
. 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.
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
Formatos de salida de la capa
Las capas en un arreglo de capas o en una gráfica de capas pasan datos a las capas posteriores como objetos dlarray
con formato. El formato de un objeto dlarray
es una cadena de caracteres, en la que cada carácter describe la dimensión correspondiente de los datos. Los formatos constan de uno o más de estos caracteres:
"S"
: espacial"C"
: canal"B"
: lote"T"
: tiempo"U"
: sin especificar
Por ejemplo, los datos de imagen 2D que están representados como arreglo 4D, donde las dos primeras dimensiones corresponden a las dimensiones espaciales de las imágenes, la tercera dimensión corresponde a los canales de las imágenes y la cuarta dimensión corresponde a la dimensión de lote, pueden describirse como datos con formato "SSCB"
(espacial, espacial, canal, lote).
La capa de entrada de una red especifica la distribución de los datos que espera la red. Si tiene datos dispuestos de otra manera, especifique la distribución usando la opción de entrenamiento InputDataFormats
.
La capa introduce arreglos de h por w por c por N en la red, donde h, w y c son la altura, el ancho y el número de canales de las imágenes, respectivamente, y N es el número de imágenes. En esta disposición, los datos tienen el formato "SSCB"
(espacial, espacial, canal, lote).
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
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 la entrada compleja 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 la entrada compleja 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'
.
R2018a: No se recomienda el uso de DataAugmentation
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.
Consulte también
trainnet
| trainingOptions
| dlnetwork
| convolution2dLayer
| fullyConnectedLayer
| maxPooling2dLayer
| augmentedImageDatastore
| image3dInputLayer
| Deep Network Designer | featureInputLayer
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)