Deep Network Designer
Entwurf und Visualisierung von Deep-Learning-Netzen
Beschreibung
Mit der App Deep Network Designer können Sie Deep-Learning-Netze importieren, erstellen, visualisieren und bearbeiten. Mit dieser App können Sie:
Netze erstellen, bearbeiten und kombinieren
Vortrainierte Netze laden und für das Transfer Learning bearbeiten
Netze aus PyTorch® und TensorFlow™ importieren
Netze analysieren, um sicherzustellen, dass die Architektur korrekt definiert ist
Netz nach Simulink® exportieren
MATLAB®-Code zum Erstellen von Netzen generieren
![](app_deep_editor.png)
Öffnen Sie die Deep Network Designer-App
MATLAB-Toolstrip: Klicken Sie in der Registerkarte Apps unter Machine Learning and Deep Learning auf das App-Symbol.
MATLAB-Eingabeaufforderung: Geben Sie
deepNetworkDesigner
ein.
Beispiele
Erstellen tiefer neuronaler Netze
Erstellen Sie ein Klassifizierungsnetz für numerische Merkmalsdaten.
Öffnen Sie Deep Network Designer.
deepNetworkDesigner
Zum Erstellen eines leeren Netzes zeigen Sie mit der Maus auf Blank Network (Leeres Netz) und klicken Sie auf New. Die App öffnet eine leere Leinwand, in die Sie Schichten ziehen und ablegen können.
Ziehen Sie aus der Layer Library (Schichtenbibliothek) eine featureInputLayer
auf die Leinwand. Sie können den Filter Layer Library zur Suche nach Schichten verwenden. Wählen Sie die Schicht aus. Setzen Sie im Bereich Properties (Eigenschaften) die Option Normalization
auf "zscore"
und InputSize
auf die Anzahl der Merkmale in Ihren Daten. Ziehen Sie dann eine fullyConnectedLayer
auf die Leinwand. Um die Schichten zu verbinden, fahren Sie über die featureInputLayer
und klicken Sie auf den out
-Port. Ziehen Sie den Pfeil auf den in
-Port der fullyConnectedLayer
.
Fügen Sie eine layerNormalizationLayer
gefolgt von einer reluLayer
auf der Leinwand ein und verbinden Sie sie nacheinander.
Zum Schluss fügen Sie eine fullyConnectedLayer
gefolgt von einer softmaxLayer
hinzu und verbinden sie. Für die letzte fullyConnectedLayer
wählen Sie die Schicht aus und setzen den Wert OutputSize
auf die Anzahl der Klassen in Ihren Daten.
Um die Schichten automatisch auszurichten, klicken Sie auf Auto Arrange.
Um zu prüfen, ob das Netz für das Training bereit ist, wählen Sie Analyze (Analysieren). Der Deep Learning Network Analyzer zeigt, dass das Netz keine Warnungen oder Fehler aufweist.
Um das Netz in den Arbeitsbereich zu exportieren, klicken Sie auf Export (Exportieren). Klicken Sie auf Export > Generate Code without Initial Parameters (Code ohne Anfangsparameter generieren), um den Code für die Neuerstellung des Netzes zu generieren.
Vorbereiten eines vortrainierten Netzes für Transfer Learning
Bereiten Sie ein Netz für Transfer Learning vor, indem Sie es im Deep Network Designer bearbeiten.
Beim Transfer Learning wird ein zuvor trainiertes Deep-Learning-Netz für das Erlernen einer neuen Aufgabe abgestimmt. Sie können Merkmale, die mit Transfer Learning erlernt wurden, schnell einer neuen Aufgabe hinzufügen und dabei weniger Trainingsbilder verwenden. Transfer Learning ist daher oft schneller und einfacher als das Training eines Netzes von Grund auf. Um ein vortrainiertes Netz für das Transfer Learning zu verwenden, müssen Sie die Anzahl der Klassen an den neuen Datensatz anpassen.
Deep Network Designer bietet eine Auswahl an vortrainierten Bild- und Audionetzen. Um die vortrainierten Netze zu untersuchen, öffnen Sie den Deep Network Designer.
deepNetworkDesigner
Für dieses Beispiel halten Sie bei SqueezeNet an und klicken auf Open (Öffnen).
Um das Netz für das Transfer Learning vorzubereiten, bearbeiten Sie die letzte lernfähige Schicht. Bei SqueezeNet ist die letzte lernfähige Schicht die 2-D-Faltungsschicht 'conv10'
.
Wählen Sie die Schicht
'conv10'
. Klicken Sie am unteren Rand des Fensterbereichs Properties auf Unlock Layer (Schicht entsperren). Durch das Entsperren der Schicht werden alle lernbaren Elemente der Schicht gelöscht. Klicken Sie im daraufhin angezeigten Dialogfeld mit der Warnung auf Unlock Anyway (Trotzdem entsperren). Dadurch werden die Schichteigenschaften freigeschaltet, sodass Sie sie an Ihre neue Aufgabe anpassen können. Setzen Sie die Eigenschaft NumFilters auf die neue Anzahl der Klassen.Ändern Sie die Lernraten so, dass in der neuen Schicht schneller gelernt wird als in den übertragenen Schichten, indem Sie die Werte für WeightLearnRateFactor und BiasLearnRateFactor auf 10 erhöhen.
Vor R2023b: Um die Schichteigenschaften für eine neue Aufgabe zu bearbeiten, müssen Sie die Schichten ersetzen, anstatt sie freizugeben.
Überprüfen Sie Ihr Netz, indem Sie auf Analyze klicken. Das Netz ist bereit für das Training, wenn Deep Learning Network Analyzer keine Fehler meldet. Um das vorbereitete Netz in den Arbeitsbereich zu exportieren, klicken Sie auf Export (Exportieren). Um MATLAB-Code zur Erstellung des Netzes zu generieren, klicken Sie auf Generate Code with Initial Parameters (Code mit Anfangsparametern generieren).
Ein Beispiel für das Training eines Netzes zur Klassifizierung neuer Bilder finden Sie unter Prepare Network for Transfer Learning Using Deep Network Designer.
Importieren eines Netzes von einer externen Plattform
Importieren Sie ein neuronales Netz aus PyTorch® oder TensorFlow™.
Für dieses Beispiel importieren Sie das MNASNet (Copyright© Soumith Chintala 2016) PyTorch-Modell. Laden Sie die Datei mnasnet1_0
, die etwa 17 MB groß ist, von der MathWorks-Website herunter.
modelfile = matlab.internal.examples.downloadSupportFile("nnet", ... "data/PyTorchModels/mnasnet1_0.pt");
Um ein Netz von einer externen Plattform zu importieren, verwenden Sie Deep Network Designer.
deepNetworkDesigner
Sie können Modelle aus PyTorch® oder TensorFlow™ importieren.
Bei PyTorch®-Modellen das Symbol From PyTorch. Kopieren Sie im Dialogfeld Import PyTorch Model (PyTorch-Modell importieren) den Speicherort der Modelldatei und klicken Sie dann auf Import (Importieren).
Beim Importieren von PyTorch-Netzken mit Deep Network Designer haben Sie die Möglichkeit, die Eingabegrößen des Netzes anzugeben. Diese Option ist nur verfügbar, wenn die Angabe der Eingabegrößen den Import erfolgreicher machen könnte, z. B. durch Verringerung der Anzahl der benutzerdefinierten Schichten.
Die App importiert das Netz und erstellt einen Importbericht. Der Importbericht zeigt alle Probleme mit dem Netz an, die behoben werden müssen, bevor Sie das Netz für das Training oder die Inferenz verwenden können. Der Bericht zeigt zum Beispiel eine Warnung an, wenn die App nicht in der Lage ist, die Eingabegrößen abzuleiten oder wenn Sie Platzhalterschichten ausfüllen müssen.
Ein Beispiel für den Import eines PyTorch®-Netzes in Deep Network Designer und die Behebung von Problemen finden Sie unter Import PyTorch® Model Using Deep Network Designer.
Netz nach Simulink exportieren
Exportieren Sie ein trainiertes Netz aus dem Deep Network Designer nach Simulink®.
Öffnen Sie Deep Network Designer.
deepNetworkDesigner
Halten Sie bei SqueezeNet an und klicken Sie auf Open (Öffnen). Um das Netz nach Simulink zu exportieren, wählen Sie Export > Export to Simulink. Wählen Sie im Dialogfeld Export to Simulink einen Speicherort für die MAT-Datei mit den Netzparametern aus und wählen Sie dann Export. Wenn das Netz während des Exports nicht initialisiert ist, versucht die Anwendung, es zu initialisieren.
Die von der App erzeugten Blöcke hängen von der Art des Netzes ab.
Predict – Vorhersage von Antworten mithilfe eines trainierten neuronalen Netzes für Deep Learning.
Stateful Predict – Vorhersage von Antworten mithilfe eines trainierten rekurrenten neuronalen Netzes.
Für SqueezeNet erzeugt die App einen Predict-Block.
Generierung von MATLAB-Code für die Netzarchitektur
Mit der App Deep Network Designer können Sie MATLAB®-Code generieren, der die Netzarchitektur nachbildet.
Um die Schichten in Ihrem Netz einschließlich aller Anfangsparameter neu zu erstellen, wählen Sie Export > Generate Network Code With Parameters (Netzcode mit Parametern generieren). Die Anwendung erstellt ein Live-Skript und eine MAT-Datei mit den Anfangsparametern (Gewichte und Verzerrungen) Ihres Netzes. Führen Sie das Skript aus, um die Netzschichten neu zu erstellen, einschließlich der lernbaren Parameter aus der MAT-Datei. Verwenden Sie diese Option, um die Gewichte beizubehalten, wenn Sie Transfer Learning durchführen möchten.
Um nur die Schichten in Ihrem Netz neu zu erstellen, wählen Sie Export > Generate Network Code Without Parameters (Code ohne Anfangsparameter generieren). Dieses Netz enthält keine Anfangsparameter, wie z. B. vortrainierte Gewichte.
Die Ausführung des generierten Skripts gibt die Netzarchitektur als ein dlnetwork
-Objekt aus. Ein Beispiel für das Training eines aus Deep Network Designer exportierten Netzes finden Sie unter Erste Schritte mit Deep Network Designer. Weitere Informationen zur Codegenerierung finden Sie unter Generate MATLAB Code from Deep Network Designer.
Verwandte Beispiele
Programmatische Nutzung
deepNetworkDesigner
deepNetworkDesigner
öffnet die App Deep Network Designer. Wenn Deep Network Designer bereits geöffnet ist, bringt deepNetworkDesigner
den Fokus auf die Anwendung.
deepNetworkDesigner(net
)
net
)deepNetworkDesigner(
öffnet die App Deep Network Designer und lädt das angegebene Netz in die App. Das Netz kann ein Array von Schichten oder ein net
)dlnetwork
-Objekt sein. Wenn Sie ein DAGNetwork
- oder SeriesNetwork
-Objekt importieren, dann versucht die Anwendung, das Netz in ein dlnetwork
-Objekt umzuwandeln. Weitere Informationen finden Sie unter dag2dlnetwork
. Wenn Sie ein LayerGraph
-Objekt importieren, dann versucht die Anwendung, es in ein dlnetwork
-Objekt umzuwandeln.
Wenn Deep Network Designer bereits geöffnet ist, setzt deepNetworkDesigner(net)
den Fokus auf die App und fordert Sie auf, ein vorhandenes Netz hinzuzufügen oder zu ersetzen.
deepNetworkDesigner(___,"-v1"
)
"-v1"
)deepNetworkDesigner(___,
öffnet die alte Version (vor R2024a) der Anwendung. Diese Version unterstützt "-v1"
)DAGNetwork
-, SeriesNetwork
- und LayerGraph
-Objekte. Weitere Informationen finden Sie unter Änderung des Standardverhaltens.
Versionsverlauf
Eingeführt in R2018bR2024a: Änderung des Standardverhaltens
Ab Version R2024a erstellt Deep Network Designer dlnetwork
-Objekte standardmäßig. Wenn Sie ein DAGNetwork
- oder SeriesNetwork
-Objekt importieren, dann versucht die Anwendung, das Netz in ein dlnetwork
-Objekt umzuwandeln. Weitere Informationen finden Sie unter dag2dlnetwork
. Wenn Sie ein LayerGraph
-Objekt importieren, dann versucht die Anwendung, es in ein dlnetwork
-Objekt umzuwandeln.
dlnetwork
-Objekte haben mehrere Vorteile und werden empfohlen anstelle von DAGNetwork
-, SeriesNetwork
- oder LayerGraph
-Objekten.
dlnetwork
-Objekte sind ein einheitlicher Datentyp, der die Erstellung von Netzen, Vorhersagen, integriertes Training, Visualisierung, Komprimierung, Verifizierung und benutzerdefinierte Trainingsschleifen unterstützt.dlnetwork
-Objekte unterstützen eine breitere Palette von Netzarchitekturen, die Sie erstellen oder von externen Plattformen importieren können.Die
trainnet
-Funktion unterstütztdlnetwork
-Objekte, sodass Sie Verlustfunktionen einfach angeben können. Sie können aus integrierten Verlustfunktionen wählen oder eine benutzerdefinierte Verlustfunktion angeben.Training und Vorhersage mit
dlnetwork
-Objekten ist in der Regel schneller alsLayerGraph
- undtrainNetwork
-Workflows.
Um das App-Verhalten von vor R2024a zu replizieren, verwenden Sie die Kennzeichnung "-v1"
.
deepNetworkDesigner("-v1") deepNetworkDesigner(net,"-v1")
Vergleich des Verhaltens von Deep Network Designer
Nicht empfohlen | Empfohlen |
---|---|
Wenn Sie in der Legacy-Version von Deep Network Designer mit
| Wenn Sie in Deep Network Designer ab R2024a mit
|
MATLAB-Befehl
Sie haben auf einen Link geklickt, der diesem MATLAB-Befehl entspricht:
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus. Webbrowser unterstützen keine MATLAB-Befehle.
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)