Predict
Predecir respuestas usando una red neuronal de deep learning entrenada

Bibliotecas:
Deep Learning Toolbox /
Deep Neural Networks
Descripción
El bloque Predict predice las respuestas 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®.
Nota
Use el bloque Predict para realizar predicciones en Simulink. Para realizar predicciones de forma programática con código de MATLAB, use la función minibatchpredict
o predict
.
Ejemplos
Lane and Vehicle Detection in Simulink Using Deep Learning
Use deep convolutional neural networks inside a Simulink® model to perform lane and vehicle detection. This example takes the frames from a traffic video as an input, outputs two lane boundaries that correspond to the left and right lanes of the ego vehicle, and detects vehicles in the frame.
Puertos
Entrada
Los puertos de entrada del bloque Predict toman los nombres de las capas de entrada de la red cargada. Por ejemplo, si especifica imagePretrainedNetwork
para MATLAB function
, el puerto de entrada del bloque Predict tiene la etiqueta data. En función de la red cargada, la entrada al bloque predict puede ser una imagen, una secuencia o datos de series de tiempo.
La distribución de la entrada depende del tipo de datos.
Datos | Distribución de los predictores |
---|---|
Imágenes 2D | 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. |
Secuencias de vectores | Matrices de s por c, donde s es la longitud de secuencia y c es el número de características de las secuencias. |
Secuencias de imágenes 2D | Arreglos de h por w por c por s, donde h, w y c corresponden a la altura, la anchura y el número de canales de las imágenes, respectivamente, y s es la longitud de la secuencia. |
Características | 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
El puerto de salida del bloque Predict toma los nombres de las capas de salida de la red cargada. Por ejemplo, si especifica imagePretrainedNetwork
para MATLAB function
, el puerto de salida del bloque Predict se etiqueta como prob_flatten. En función de la red cargada, la salida del bloque Predict puede representar puntuaciones o respuestas predichas.
Puntuaciones o respuestas predichas, devueltas como un arreglo de K por N, donde K es el número de clases y N es el número de observaciones.
Si habilita Activations
para una capa de red, el bloque Predict crea un nuevo puerto de salida con el nombre de la capa de red seleccionada. Este puerto produce como salida las activaciones de la capa de red seleccionada.
Las activaciones de la capa de red se devuelven como un arreglo numérico. El formato de la salida depende del tipo de datos de entrada y del tipo de salida de la capa.
Para salida de imágenes 2D, las activaciones son un arreglo de h por w por c por n, donde h, w y c son la altura, la anchura y el número de canales para la salida de la capa escogida, respectivamente, y n es el número de imágenes.
Para una unidad de tiempo única que contiene datos de vector, las activaciones son una matriz de c por n, donde c es el número de características y n es el número de secuencias.
Para una unidad de tiempo única que contiene datos de vector, las activaciones son una matriz de c por n por s, donde c es el número de características de la secuencia, n es el número de secuencias y s es la longitud de la secuencia.
Para una sola unidad de tiempo que contiene datos de imágenes 2D, las activaciones son un arreglo de h por w por c por n, en el que n es el número de secuencias y h, w, y c son la altura, la anchura y el número de canales de las imágenes, respectivamente.
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' |
Habilite puertos de salida que devuelvan puntuaciones o respuestas predichas.
Uso programático
Parámetro de bloque: Predictions |
Tipo: vector de caracteres, cadena |
Valores: 'off' | 'on' |
Valor predeterminado: 'on' |
Este parámetro especifica el formato de los datos de entrada que espera el objeto dlnetwork
entrenado.
Formato de los datos, especificado como escalar de cadena o vector de caracteres. Cada carácter de la cadena debe ser una de las etiquetas de dimensión siguientes:
"S"
: espacial"C"
: canal"B"
: lote"T"
: tiempo"U"
: sin especificar
Por ejemplo, en un arreglo que contiene un lote de secuencias, donde la primera, la segunda y la tercera dimensión corresponden a canales, observaciones y unidades de tiempo respectivamente, puede especificar que tiene el formato "CBT"
.
Puede especificar varias dimensiones etiquetadas "S"
o "U"
. Puede utilizar las etiquetas "C"
, "B"
y "T"
como mucho una vez cada una. El software ignora las dimensiones únicas "U"
restantes tras la segunda dimensión.
Para obtener más información, consulte Deep Learning Data Formats.
De forma predeterminada, el parámetro usa el formato de datos que espera la red.
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: InputDataFormats |
Tipo: vector de caracteres, cadena |
Valores: Para una red con una o más entradas, especifique el texto en forma de: "{'inputlayerName1', 'SSC'; 'inputlayerName2', 'SSCB'; ...}" . Para una red sin capa de entrada y con varios puertos de entrada, especifique el texto en forma de: "{'inputportName1/inport1, 'SSC'; 'inputportName2/inport2, 'SSCB'; ...}" . |
Valor predeterminado: Formato de los datos que espera la red. Para obtener más información, consulte Deep Learning Data Formats. |
Use la lista Activations para seleccionar la capa de la que extraer características. Las capas seleccionadas aparecen como un puerto de salida del bloque Predict.
Uso programático
Parámetro de bloque: Activations |
Tipo: vector de caracteres, cadena |
Valores: vector de caracteres en forma de '{'layerName1',layerName2',...}' |
Valor predeterminado: '' |
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 Predict, consulte Code Generation for a Deep Learning Simulink Model That Performs Lane and Vehicle Detection (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 Predict 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
.Si la entrada al bloque es una secuencia de vectores, trasponga la matriz usando un bloque de trasposición a un tamaño de s por c, donde s es la longitud de secuencia y c es el número de características de las secuencias.
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)