Deep Learning Toolbox

Progettare, addestrare e analizzare reti di deep learning

Deep Learning Toolbox™ fornisce un framework per la progettazione e l’implementazione di reti neurali profonde con algoritmi, modelli pre-addestrati e app. È possibile utilizzare reti neurali convoluzionali (ConvNet, CNN) e reti Long Short-Term Memory (LSTM) per eseguire la classificazione e la regressione su immagini, serie storiche e dati testuali. È possibile costruire architetture di rete come reti generative avversarie (GAN) e reti siamesi utilizzando la differenziazione automatica, cicli di addestramento personalizzati e pesi condivisi. Con l’app Deep Network Designer è possibile progettare, analizzare e addestrare reti in forma grafica. L’app Experiment Manager ti aiuta a gestire più esperimenti di deep learning, a tenere traccia dei parametri di addestramento, ad analizzare i risultati e a confrontare il codice di diversi esperimenti. È inoltre possibile visualizzare le attivazioni dei layer e monitorare graficamente l’avanzamento dell’addestramento.

È possibile scambiare i modelli con TensorFlow™ e PyTorch attraverso il formato ONNX e importare i modelli da TensorFlow-Keras e Caffe. Il toolbox supporta il transfer learning con DarkNet-53, ResNet-50, NASNet, SqueezeNet e molti altri modelli pre-addestrati.

È possibilevelocizzare l’addestramento su workstation con una o più GPU (con Parallel Computing Toolbox™), oppure scalare su cluster e cloud, tra cui istanze di GPU NVIDIA® GPU Cloud e Amazon EC2® (con MATLAB Parallel Server™).

Per iniziare:

Reti e architetture

Addestra reti di deep learning per la classificazione, la regressione e l’apprendimento di feature su immagini, serie storiche e dati testuali.

Reti neurali convoluzionali

Scopri i pattern presenti nelle immagini per riconoscere oggetti, volti e scene. Costruisci e addestra le reti neurali convoluzionali (CNN) per eseguire l’estrazione di feature e il riconoscimento delle immagini.

Reti Long Short-Term Memory

Scopri le dipendenze a lungo termine nei dati sequenziali inclusi i segnali, i dati audio, i dati testuali e altri dati di serie storiche. Costruisci e addestra le reti Long Short-Term Memory (LSTM) per eseguire la classificazione e la regressione.

Lavorare con LSTM.

Architetture di rete

Utilizza le varie strutture di rete come le Directed Acyclic Graph (DAG) e le architetture ricorrenti per creare la tua rete di deep learning. Costruisci architetture di rete avanzate come reti generative avversarie (GAN) e reti siamesi usando cicli di addestramento personalizzati, pesi condivisi e differenziazione automatica.

Lavorare con diverse architetture di rete.

Progettazione e analisi reti

Crea, visualizza, sperimenta e analizza reti di deep learning con app interattive.

Progettare reti di deep learning

Crea e addestra una rete profonda da zero utilizzando l’app Deep Network Designer. Importa un modello pre-addestrato, visualizza la struttura della rete, modifica i layer, ottimizza i parametri e inizia l’addestramento.

Analizzare reti di deep learning

Analizza la tua architettura di rete per individuare ed eseguire il debug di errori, avvisi e problemi di compatibilità dei layer prima dell’addestramento. Visualizza la topologia di rete e i dettagli come i parametri assimilabili e le attivazioni.

Analizzare un’architettura di rete di deep learning.

Gestire esperimenti di deep learning

Gestisci più test di deep learning con l’app Experiment Manager. Monitora i parametri di addestramento, analizza i risultati e confronta il codice di diversi esperimenti. Utilizza strumenti di visualizzazione come grafici di addestramento e matrici di confusione, ordina e filtra i risultati dell’esperimento e definisci metriche personalizzate per valutare i modelli addestrati.

Progetta ed esegui esperimenti per addestrare e confrontare reti di deep learning.

Transfer learning e modelli pre-addestrati

Importa modelli pre-addestrati in MATLAB per inferenza.

Transfer learning

Accedi alle reti pre-addestrate e usale come punto di partenza per apprendere una nuova attività. Esegui il transfer learning per utilizzare le feature acquisite nella rete per un’attività specifica.

Modelli pre-addestrati

Accedi alle reti pre-addestrate di una ricerca recente con una sola riga di codice. Importa modelli pre-addestrati tra cui DarkNet-53, ResNet-50, SqueezeNet, NASNet e Inception-v3.

Analisi di modelli pre-addestrati.

Visualizzazione e debug

Visualizza i progressi dell’addestramento e le attivazioni delle feature acquisite in una rete di deep learning.

Progresso dell’addestramento

Visualizza i progressi dell’addestramento in ogni iterazione con grafici di varie metriche. Rappresenta le metriche di convalida rispetto a quelle di addestramento per verificare l’eventuale overfitting della rete.

Monitorare i progressi dell’addestramento del proprio modello.

Attivazioni di rete

Estrai le attivazioni corrispondenti a un layer, visualizza le feature acquisite e addestra un classificatore di machine learning usando le attivazioni. Usa l’approccio Grand-CAM per comprendere al meglio le scelte di classificazione di una rete di deep learning.

Visualizzare le attivazioni.

Interoperabilità dei framework

Sfrutta l’interoperabilità con i framework di deep learning di MATLAB.

Convertitore ONNX

Importa ed esporta modelli ONNX in MATLAB® per l’interoperabilità con altri framework di deep learning. ONNX consente di addestrare i modelli in un framework e di trasferirli a un altro per inferenza. Utilizza GPU Coder™ per generare codice NVIDIA® CUDA® ottimizzato e usa MATLAB Coder™ per generare codice C++ per il modello importato.

Sfruttare l’interoperabilità con i framework di deep learning.

Importatore di modelli da TensorFlow-Keras

Importa i modelli da TensorFlow-Keras in MATLAB per inferenza ed esegui il transfer learning. Utilizza GPU Coder per generare codice CUDA ottimizzato e MATLAB Coder per generare codice C++ per il modello di importatore.

Importatore di modelli da Caffe

Importa modelli da Caffe Model Zoo in MATLAB per inferenza ed esegui il transfer learning.

Importare modelli da Caffe Model Zoo in MATLAB.

Accelerazione dell’addestramento

Accelera l’addestramento del deep learning usando GPU, il cloud e le funzioni di calcolo distribuito.

Accelerazione GPU

Accelera l’addestramento del deep learning e l’inferenza con GPU NVIDIA ad alte prestazioni. È possibile eseguire l’addestramento su una GPU a workstation singola oppure sfruttare più GPU con i sistemi DGX nei data center o nel cloud. È possibile utilizzare MATLAB con Parallel Computing Toolbox e la maggior parte delle GPU NVIDIA abilitate per CUDA che presentano una capacità di elaborazione pari o superiore a 3.0.

Accelerazione con GPU.

Accelerazione cloud

Riduci il numero di addestramenti del deep learning con istanze cloud. Utilizza le istanze di GPU ad alte prestazioni per ottenere risultati migliori.

Accelera l’addestramento nel cloud con Parallel Computing Toolbox e MATLAB Parallel Server.

Calcolo distribuito

Esegui l’addestramento del deep learning su più processori e server in una rete utilizzando MATLAB Parallel Server.

Ampliare le capacità del deep learning in parallelo e nel cloud.

Generazione e distribuzione di codici

Distribuisci le reti addestrate in sistemi embedded oppure integrale negli ambienti di produzione.

Generazione di codice

Utilizza GPU Coder per generare codice CUDA ottimizzato dal codice MATLAB per il deep learning, la visione embedded e i sistemi autonomi. Utilizza MATLAB Coder per generare codice C++ per distribuire le reti di deep learning su processori Intel® Xeon® e ARM® Cortex®-A. Automatizza la cross-compilazione e la distribuzione del codice generato alle piattaforme NVIDIA Jetson™ e DRIVE™ e alle schede Raspberry Pi™.

Distribuire applicazioni standalone

Utilizza MATLAB Compiler™ e MATLAB Compiler SDK™ per distribuire reti addestrate come librerie condivise C++, assembly Microsoft® .NET, classi Java® e pacchetti Python® dai programmi MATLAB con modelli di deep learning.

Condividere programmi MATLAB standalone con MATLAB Compiler.

Quantizzazione del deep learning

È possibile quantizzare la propria rete di deep learning in INT8 e analizzare il tradeoff sull’accuratezza della quantizzazione di pesi e bias dei layer selezionati utilizzando il pacchetto di supporto Model Quantization Library.

Reti neurali superficiali

Utilizza le reti neurali con una varietà di architetture di reti neurali superficiali supervisionate e non supervisionate.

Reti supervisionate

Addestra le reti neurali superficiali supervisionate per modellare e controllare sistemi dinamici, classificare dati rumorosi e prevedere eventi futuri. 

Rete neurale superficiale.

Reti non supervisionate

Trova relazioni tra i dati e definisci automaticamente schemi di classificazione lasciando che la rete superficiale si adatti continuamente ai nuovi input. Usa reti self-organizing non supervisionate, layer competitivi e self-organizing map.

Self-organizing map.

Autocodificatori impilati

Esegui la trasformazione delle feature non supervisionate estraendo feature a bassa dimensione dai set di dati con gli autocodificatori. È anche possibile utilizzare autocodificatori impilati per l’apprendimento supervisionato mediante addestramento e stacking di più codificatori.

Codificatore impilato.

Funzionalità recenti

App Experiment Manager

Gestire più esperimenti di deep learning, monitorare i parametri di addestramento e analizzare e mettere a confronto il codice e i risultati

App Deep Network Designer

Addestrare interattivamente una rete per la classificazione di immagini, generare codice MATLAB per l’addestramento e accedere ai modelli pre-addestrati

Loop di addestramento personalizzati

Addestrare reti con più input, più output o layer CNN 3D

Esempi di deep learning

Addestrare reti di didascalie di immagini attraverso meccanismi di attenzione e addestrare GAN condizionali utilizzando attributi ed etichette di dati

Reti pre-addestrate

Eseguire il transfer learning con DarkNet-19 e DarkNet-53

Supporto per ONNX

Importare reti con più input o output tramite il convertitore di modelli ONNX

Flessibilità di addestramento

Specificare funzioni backward di layer personalizzate per loop di addestramento personalizzati

Consulta le note di rilascio per ulteriori informazioni su queste caratteristiche e sulle funzioni corrispondenti.

MATLAB per il deep learning

Con solo poche righe di codice MATLAB, è possibile applicare le tecniche di deep learning al proprio lavoro per la progettazione di algoritmi, la preparazione e l’etichettatura di dati, la generazione di codice e la distribuzione su sistemi embedded.