Image Classifier
Clasificar datos con una red neuronal de deep learning entrenada
Desde R2020b
Bibliotecas:
Deep Learning Toolbox /
Deep Neural Networks
Descripción
El bloque Image Classifier predice las etiquetas de clase de los datos de la entrada utilizando la red entrenada especificada mediante el parámetro de bloque. Este bloque permite cargar una red preentrenada en el modelo de Simulink® desde un archivo MAT o una función de MATLAB®.
Ejemplos
Clasificar imágenes en Simulink con GoogLeNet
En este ejemplo se muestra cómo clasificar una imagen en Simulink® usando el bloque Image Classifier
. En este ejemplo se usa la red neuronal convolucional profunda preentrenada GoogLeNet para llevar a cabo una clasificación.
Classify ECG Signals in Simulink Using Deep Learning
Use wavelet transforms and a deep learning network within a Simulink (R) model to classify ECG signals. This example uses the pretrained convolutional neural network from the Classify Time Series Using Wavelet Analysis and Deep Learning example of the Wavelet Toolbox™ to classify ECG signals based on images from the CWT of the time series data. For information on training, see Classify Time Series Using Wavelet Analysis and Deep Learning (Wavelet Toolbox).
Limitaciones
El bloque Image Classifier no es compatible con las redes de secuencia ni con las redes de múltiples entradas y múltiples salidas (MIMO).
El bloque Image Classifier no es compatible con el registro de archivos MAT.
Puertos
Entrada
image — Datos de imagen o características
Arreglo numérico
Un arreglo numérico de h por w por c por N, en el que h, w y c son la altura, la anchura y el número de canales de las imágenes, respectivamente, y N es el número de imágenes.
Un arreglo numérico de N por numFeatures
, en el que N es el número de observaciones y numFeatures
es el número de características de los datos de entrada.
Si el arreglo contiene valores NaN
, estos se propagan a lo largo de la red.
Salida
ypred — Etiquetas de clase predichas
enumerado
Etiquetas de clase predichas con la puntuación más alta, devueltas como un vector enumerado de etiquetas de N por 1 en el que N es el número de observaciones.
scores — Puntuaciones de clase predichas
matriz
Puntuaciones predichas, devueltas como una matriz de K por N, en la que K es el número de clases y N es el número de observaciones.
labels — Etiquetas de clase de las puntuaciones predichas
matriz
Etiquetas asociadas a las puntuaciones predichas, devueltas como una matriz de N por K, en la que N es el número de observaciones y K es el número de clases.
Parámetros
Network — Origen de la red entrenada
Network from MAT-file
(predeterminado) | Network from MATLAB function
Especifique el origen de la red entrenada. Seleccione una de las siguientes opciones:
Network from MAT-file
: importar una red entrenada desde un archivo MAT que contenga un objetodlnetwork
.Network from MATLAB function
: importar una red preentrenada desde una función de MATLAB. Por ejemplo, para usar una red GoogLeNet preentrenada, cree una funciónpretrainedGoogLeNet
en un archivo M de MATLAB y, a continuación, importe esta función.function net = pretrainedGoogLeNet net = imagePretrainedNetwork("googlenet"); end
Uso programático
Parámetro de bloque: Network |
Tipo: vector de caracteres, cadena |
Valores: 'Network from MAT-file' | 'Network from MATLAB function' |
Valor predeterminado: 'Network from MAT-file' |
File path — El archivo MAT que contiene la red entrenada
untitled.mat
(predeterminado) | Nombre o ruta del archivo MAT
Este parámetro especifica el nombre del archivo MAT que contiene la red de deep learning entrenada que desea cargar. Si el archivo no está en la ruta de MATLAB, utilice el botón Browse para localizar el archivo.
Dependencias
Para habilitar este parámetro, establezca el parámetro Network en Network from MAT-file
.
Uso programático
Parámetro de bloque: NetworkFilePath |
Tipo: vector de caracteres, cadena |
Valores: Nombre o ruta del archivo MAT |
Valor predeterminado: 'untitled.mat' |
MATLAB function — Nombre de la función de MATLAB
squeezenet
(predeterminado) | Nombre de la función de MATLAB
Este parámetro especifica el nombre de la función de MATLAB para la red de deep learning preentrenada. Por ejemplo, para usar una red GoogLeNet preentrenada, cree una función pretrainedGoogLeNet
en un archivo M de MATLAB y, a continuación, importe esta función.
function net = pretrainedGoogLeNet net = imagePretrainedNetwork("googlenet"); end
Dependencias
Para habilitar este parámetro, establezca el parámetro Network en Network from MATLAB function
.
Uso programático
Parámetro de bloque: NetworkFunction |
Tipo: vector de caracteres, cadena |
Valores: Nombre de la función de MATLAB |
Valor predeterminado: 'squeezenet' |
Mini-batch size — Tamaño de los minilotes
128 (predeterminado) | entero positivo
Tamaño de los minilotes utilizados durante la predicción, especificado como un entero positivo. Un tamaño de minilote mayor requiere más memoria, pero puede proporcionar predicciones más rápidas.
Uso programático
Parámetro de bloque: MiniBatchSize |
Tipo: vector de caracteres, cadena |
Valores: entero positivo |
Valor predeterminado: '128' |
Resize input — Cambiar el tamaño de las dimensiones de entrada
on
(predeterminado) | off
Cambie el tamaño de los datos del puerto de entrada de forma que coincida con el tamaño de entrada de la red.
Uso programático
Parámetro de bloque: ResizeInput |
Tipo: vector de caracteres, cadena |
Valores: 'off' | 'on' |
Valor predeterminado: 'on' |
Classification — Devolver la etiqueta predicha con la puntuación más alta como salida
on
(predeterminado) | off
Habilite el puerto de salida ypred
, que devuelve la etiqueta con la puntuación más alta como salida.
Uso programático
Parámetro de bloque: Classification |
Tipo: vector de caracteres, cadena |
Valores: 'off' | 'on' |
Valor predeterminado: 'on' |
Predictions — Devolver todas las puntuaciones y las etiquetas asociadas como salida
off
(predeterminado) | on
Habilite los puertos de salida scores
y labels
, que devuelven todas las puntuaciones predichas y las etiquetas de clase asociadas como salida.
Uso programático
Parámetro de bloque: Predictions |
Tipo: vector de caracteres, cadena |
Valores: 'off' | 'on' |
Valor predeterminado: 'off' |
Variable del área de trabajo de los nombres de clase — Variable del área de trabajo que contiene los nombres de clase de la salida de red
classNames
(predeterminado) | variable de vector categórico | variable de arreglo de cadena | nombre de variable de arreglo de celdas de vectores de caracteres
Variable que contiene los nombres de las clases, especificada como un vector categórico, un arreglo de cadenas o un arreglo de celdas de vectores de caracteres.
El tamaño de salida de la red debe coincidir con el número de clases.
Dependencias
Para habilitar este parámetro, establezca Network en Network from MAT-file
e importe un objeto dlnetwork
entrenado desde un archivo MAT.
Uso programático
Parámetro de bloque: classNames |
Tipo: nombre de variable de un vector categórico, un arreglo de cadenas o un arreglo de celdas de vectores de caracteres. |
Valores: Nombre de una variable que contiene los nombres de las clases, especificado como un vector categórico, un arreglo de cadenas o un arreglo de celdas de vectores de caracteres. |
Valor predeterminado: la variable del área de trabajo classNames . |
Sugerencias
Puede acelerar sus simulaciones con la generación de código aprovechando la biblioteca MKL-DNN Intel®. Para obtener más detalles, consulte Acceleration for Simulink Deep Learning Models.
Capacidades ampliadas
Generación de código C/C++
Genere código C y C++ mediante Simulink® Coder™.
Notas y limitaciones de uso:
Para generar código C genérico que no dependa de bibliotecas de terceros, vaya a Configuration Parameters, seleccione la categoría general Code Generation y establezca el parámetro Language en
C
.Para generar código C++, vaya a Configuration Parameters, seleccione la categoría general Code Generation y establezca el parámetro Language en
C++
. Para especificar la biblioteca para la generación de código, vaya a Code Generation, seleccione la categoría general Interface y establezca el parámetro Target Library. Establezca este parámetro enNone
para generar código C++ genérico que no dependa de bibliotecas de terceros.Para objetivos basados en ERT, debe habilitar el parámetro Support: variable-size signals. Para ello, vaya a Code Generation > panel Interface.
Para ver la lista de redes y capas compatibles con la generación de código, consulte Networks and Layers Supported for Code Generation (MATLAB Coder).
Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.
Notas y limitaciones de uso:
Debe establecer el parámetro Language que aparece en Configuration Parameters > categoría general Code Generation en
C++
.Para ver la lista de las redes y las capas compatibles con la generación de código CUDA®, consulte Supported Networks, Layers, and Classes (GPU Coder).
Para obtener más información sobre la generación de código para los modelos de Simulink que contienen el bloque Image Classifier, consulte Code Generation for a Deep Learning Simulink Model to Classify ECG Signals (GPU Coder).
Historial de versiones
Introducido en R2020bR2024a: No se recomienda el uso de SeriesNetwork
ni de DAGNetwork
A partir de la versión R2024a, los objetos SeriesNetwork
y DAGNetwork
no están recomendados. Esta recomendación significa que las entradas SeriesNetwork
y DAGNetwork
al bloque Image Classifier no están recomendadas. En su lugar, use los objetos dlnetwork
. Los objetos dlnetwork
tienen estas ventajas:
Los objetos
dlnetwork
son un tipo de datos unificado que admite la creación de redes, la predicción, el entrenamiento integrado, la visualización, la compresión, la verificación y los bucles de entrenamiento personalizados.Los objetos
dlnetwork
admiten una gama más amplia de arquitecturas de red que puede crear o importar desde plataformas externas.La función
trainnet
admite objetosdlnetwork
, lo que le permite especificar fácilmente funciones de pérdida. Puede seleccionar entre funciones de pérdida integradas o especificar una función de pérdida personalizada.Entrenar y predecir con los objetos
dlnetwork
suele ser más rápido que los flujos de trabajoLayerGraph
ytrainNetwork
.
Los modelos de bloques de Simulink con objetos dlnetwork
se comportan de forma diferente. Las puntuaciones predichas se devuelven como una matriz de K por N, en la que K es el número de clases y N es el número de observaciones. Si tiene un modelo de bloques de Simulink ya existente con un objeto SeriesNetwork
o DAGNetwork
, siga estos pasos para usar un objeto dlnetwork
en su lugar:
Convierta el objeto
SeriesNetwork
oDAGNetwork
en un objetodlnetwork
mediante la funcióndag2dlnetwork
.Defina una variable de área de trabajo que contenga los nombres de clase de la salida de red correspondiente al parámetro de bloque Class names workspace variable.
Transponga las puntuaciones predichas con un bloque de transposición a un arreglo de N por K, donde N es el número de observaciones y K es el número de clases.
Consulte también
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)