Deep Learning Toolbox
Diseño, entrenamiento y análisis de redes de deep learning
Deep Learning Toolbox™ proporciona un marco para diseñar e implementar redes neuronales profundas con algoritmos, modelos previamente entrenados y apps. Puede utilizar redes neuronales convolucionales (ConvNet y CNN) y redes de memoria de corto-largo plazo (LSTM) para realizar la clasificación y la regresión en imágenes, series temporales y datos de texto. Es posible crear arquitecturas de red como redes generativas antagónicas (GAN) y redes siamesas mediante diferenciación automática, bucles de entrenamiento personalizados y pesos compartidos. Con la app Deep Network Designer, puede diseñar, analizar y entrenar redes gráficamente. La app Experiment Manager ayuda a gestionar varios experimentos de deep learning, realizar un seguimiento de los parámetros de entrenamiento, analizar resultados y comparar código de diferentes experimentos. Puede visualizar las activaciones de capas y supervisar gráficamente el progreso del entrenamiento.
Puede intercambiar modelos con TensorFlow™ y PyTorch a través del formato ONNX e importar modelos de TensorFlow-Keras y Caffe. La toolbox soporta la transferencia de aprendizaje con DarkNet-53, ResNet-50, NASNet, SqueezeNet y muchos otros modelos previamente entrenados.
Puede acelerar el entrenamiento en una estación de trabajo con una o varias GPU (con Parallel Computing Toolbox™) o ampliar el alcance a clusters y nubes, incluidas las instancias de GPU de NVIDIA® GPU Cloud y Amazon EC2® (con MATLAB Parallel Server™).
Comience:
Redes neuronales convolucionales
Descubra patrones en imágenes para reconocer objetos, caras y escenas. Construya y entrene redes neuronales convolucionales (CNN) para realizar la extracción de funcionalidades y el reconocimiento de imágenes.
Redes de memoria de corto-largo plazo
Realice el aprendizaje de dependencias de corto-largo plazo en datos secuenciales, incluidos datos de señales, audio, texto y otras series temporales. Cree y entrene redes de memoria de corto-largo plazo (LSTM) para realizar tareas de clasificación y regresión.
Arquitecturas de red
Utilice diversas estructuras de red, como grafo acíclico dirigido (DAG) y arquitecturas recurrentes, para crear su red de deep learning. Cree arquitecturas de red avanzadas, como redes generativas antagónicas (GAN) y redes siamesas mediante bucles de entrenamiento personalizados, pesos compartidos y diferenciación automática.
Diseño de redes de deep learning
Cree y entrene una red profunda desde cero con la app Deep Network Designer. Importe un modelo previamente entrenado, visualice la estructura de red, edite las capas, ajuste los parámetros y realice el entrenamiento.
Análisis de redes de deep learning
Analice la arquitectura de su red para detectar y depurar errores, advertencias y problemas de compatibilidad de capas antes del entrenamiento. Visualice la topología de la red y detalles tales como las activaciones y los parámetros que se pueden aprender.
Administración de experimentos de deep learning
Administre varios experimentos de deep learning con la app Experiment Manager. Realice un seguimiento de los parámetros de entrenamiento, analice los resultados y compare el código de diferentes experimentos. Utilice herramientas de visualización como diagramas de entrenamiento y matrices de confusión, ordene y filtre los resultados de los experimentos y defina métricas personalizadas para evaluar los modelos entrenados.
Transferencia del aprendizaje
Acceda a redes previamente entrenadas y utilícelas como punto de partida para aprender una nueva tarea. Realice la transferencia del aprendizaje para utilizar las funcionalidades aprendidas en la red para una tarea específica.
Modelos previamente entrenados
Acceda a redes previamente entrenadas basadas en las investigaciones más recientes con una sola línea de código. Importe modelos previamente entrenados, incluidos DarkNet-53, ResNet-50, SqueezeNet, NASNet e Inception-v3.
Progreso del entrenamiento
Vea el progreso del entrenamiento en cada iteración con diagramas de diversas métricas. Represente gráficamente las métricas de validación con respecto a las métricas de entrenamiento para comprobar si la red presenta sobreajuste.
Activaciones de red
Extraiga las activaciones correspondientes a una capa, visualice las funcionalidades aprendidas y entrene un clasificador de machine learning con las activaciones. Utilice el enfoque Grad-CAM para entender por qué una red de deep learning toma decisiones de clasificación.
Conversor de ONNX
Importe y exporte modelos ONNX en MATLAB® para permitir la interoperabilidad con otros marcos de deep learning. ONNX permite entrenar modelos en un marco y transferirlos a otro para la inferencia. Utilice GPU Coder™ para generar código CUDA® optimizado para NVIDIA®, y MATLAB Coder™ para generar código C++ para el modelo importado.l.
Importador de TensorFlow-Keras
Importe modelos desde TensorFlow-Keras a MATLAB para las tareas de inferencia y transferencia del aprendizaje. Utilice GPU Coder para generar código CUDA optimizado y MATLAB Coder para generar código C/C++ para el modelo importado.
Importador de Caffe
Importe modelos desde Caffe Model Zoo a MATLAB para las tareas de inferencia y transferencia del aprendizaje.
Aceleración por GPU
Acelere la inferencia y el entrenamiento de deep learning con GPU NVIDIA de alto rendimiento. Realice el entrenamiento en una sola GPU de estación de trabajo o amplíe a varias GPU con sistemas DGX en centros de datos o en la nube. Puede utilizar MATLAB con Parallel Computing Toolbox y la mayoría de GPU NVIDIA habilitadas para CUDA con una capacidad de cálculo 3.0 o superior.
Aceleración en la nube
Reduzca el tiempo de entrenamiento de deep learning con instancias en la nube. Utilice instancias de GPU de alto rendimiento para obtener los mejores resultados.
Cálculo distribuido
Realice el entrenamiento de deep learning en varios procesadores de diversos servidores de una red mediante MATLAB Parallel Server.
Simulación
Simule y genere código para redes de deep learning en Simulink®. Utilice AlexNet, GoogLeNet y otros modelos previamente entrenados. También puede simular redes creadas desde cero o mediante transferencia del aprendizaje, incluidas las redes LSTM. Acelere la ejecución de su red de deep learning en Simulink utilizando GPU Coder y GPU NVIDIA. Simule redes de deep learning con componentes de control, procesamiento de señales y fusión de sensores para evaluar cómo un modelo de deep learning puede mejorar el rendimiento en el nivel de sistema.
Generación de código
Utilice GPU Coder para generar código CUDA optimizado a partir de código de MATLAB para deep learning, visión embebida y sistemas autónomos. Utilice MATLAB Coder para generar código C/C++ y desplegar redes de deep learning en procesadores Intel® Xeon® y ARM® Cortex®-A. Automatice la compilación cruzada y el despliegue de código generado en las plataformas NVIDIA Jetson™ y DRIVE™, así como en las placas Raspberry Pi™.
Cuantización de deep learning
Cuantice su red de deep learning para INT8 y analice el tradeoff con respecto a la precisión de cuantizar los pesos y sesgos de las capas seleccionadas utilizando el paquete de soporte de Model Quantization Library.
Despliegue de aplicaciones independientes
Utilice MATLAB Compiler™ y MATLAB Compiler SDK™ para desplegar redes entrenadas como librerías C/C++ compartidas, ensamblados Microsoft®.NET, clases de Java® y paquetes de Python® desde programas de MATLAB con modelos de deep learning.
Redes supervisadas
Entrene redes neuronales superficiales supervisadas para modelar y controlar sistemas dinámicos, clasificar datos con ruido y predecir eventos futuros.
Redes no supervisadas
Encuentre correspondencias entre los datos y defina de forma automática los esquemas de clasificación dejando que la red superficial se ajuste continuamente en función de las entradas nuevas. Utilice redes con organización automática y sin supervisión, así como capas competitivas y mapas con organización automática.
Autocodificadores apilados
Realice transformación de funcionalidades no supervisada a través de la extracción de funcionalidades de baja dimensión de sus conjuntos de datos mediante autocodificadores. También puede utilizar autocodificadores apilados para el aprendizaje supervisado a través del entrenamiento y el apilamiento de varios codificadores.