Image Classifier
Clasificar datos con una red neuronal de deep learning entrenada

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
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
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.
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.
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
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' |
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'
|
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' |
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' |
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' |
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' |
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 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
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 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).
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 R2020bA 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
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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)