?>
Fügt eine Schicht zu einem Deep-Learning-Modell hinzu. Diese Aktion ist fundamental für den schrittweisen Aufbau von neuronalen Netzwerkarchitekturen, indem sie es ermöglicht, verschiedene Arten von Schichten (z. B. Konvolution, Pooling, vollständig verbunden) zu einem bestehenden Modell hinzuzufügen und deren Verbindungen zu definieren.
| Parameter | Beschreibung |
|---|---|
| modelTable | Gibt die In-Memory-Tabelle an, die das zu modifizierende Deep-Learning-Modell enthält. |
| name | Gibt einen eindeutigen Namen für die neue Schicht an. Dieser Name wird verwendet, um in nachfolgenden Schichten darauf zu verweisen. |
| layer | Definiert die Eigenschaften der hinzuzufügenden Schicht, einschließlich ihres Typs (z. B. 'INPUT', 'CONVOLUTION', 'POOLING', 'FC') und anderer typspezifischer Parameter. |
| srcLayers | Gibt eine Liste von Namen der Quellschichten an, die als Eingabe für diese neue Schicht dienen. |
| replace | Wenn auf TRUE gesetzt, wird eine vorhandene Schicht mit demselben Namen durch diese neue Schicht ersetzt. |
| sharingWeights | Gibt den Namen einer anderen Schicht an, deren Gewichte mit dieser Schicht geteilt werden sollen. Nützlich für siamesische Netzwerke oder andere Architekturen mit geteilten Gewichten. |
Die Aktion `addLayer` modifiziert ein bestehendes Modell. Bevor Schichten hinzugefügt werden können, muss ein Modell mit der Aktion `buildModel` initialisiert werden. Das folgende Beispiel erstellt ein leeres Modell, das als Container für die nachfolgenden Schichten dient.
proc cas;
deepLearn.buildModel /
model={name='meinLeeresModell', replace=true};
run;Dieses Beispiel zeigt, wie man eine grundlegende Input-Schicht zu einem leeren Modell hinzufügt. Die Input-Schicht ist typischerweise die erste Schicht und definiert die Dimensionen der Eingabedaten (z. B. Höhe, Breite und Anzahl der Kanäle für Bilder).
| 1 | PROC CAS; |
| 2 | DEEPLEARN.addLayer / |
| 3 | modelTable={name='meinLeeresModell'}, |
| 4 | name='Input1', |
| 5 | layer={type='input', nchannels=3, width=224, height=224, scale=1.0/255.0}; |
| 6 | RUN; |
Aufbauend auf einer Input-Schicht, fügt dieses Beispiel eine Convolutional-Schicht hinzu, um Merkmale zu extrahieren, gefolgt von einer Pooling-Schicht, um die Dimensionalität der Merkmalskarten zu reduzieren. Dies ist ein typisches Muster in Convolutional Neural Networks (CNNs).
| 1 | PROC CAS; |
| 2 | /* Zuerst eine Input-Schicht hinzufügen */ |
| 3 | DEEPLEARN.addLayer / |
| 4 | modelTable={name='meinLeeresModell'}, |
| 5 | name='Input1', |
| 6 | layer={type='input', nchannels=3, width=224, height=224}; |
| 7 | |
| 8 | /* Dann eine Convolutional-Schicht hinzufügen, die auf 'Input1' aufbaut */ |
| 9 | DEEPLEARN.addLayer / |
| 10 | modelTable={name='meinLeeresModell'}, |
| 11 | name='Conv1', |
| 12 | layer={type='convolution', nFilters=32, width=3, height=3, stride=1, act='relu'}, |
| 13 | srcLayers={'Input1'}; |
| 14 | |
| 15 | /* Schließlich eine Pooling-Schicht hinzufügen, die auf 'Conv1' aufbaut */ |
| 16 | DEEPLEARN.addLayer / |
| 17 | modelTable={name='meinLeeresModell'}, |
| 18 | name='Pool1', |
| 19 | layer={type='pooling', width=2, height=2, stride=2, pool='max'}, |
| 20 | srcLayers={'Conv1'}; |
| 21 | RUN; |
Ein Fertigungsunternehmen möchte ein neuronales Netzwerk aufbauen, um Produktfehler auf einem Förderband automatisch zu erkennen. Dieses Szenario testet den grundlegenden, seque...
Eine Bank möchte die Echtheit von Unterschriften überprüfen, indem sie eine neue Unterschrift mit einer Referenzunterschrift vergleicht. Ein siamesisches Netzwerk ist ideal dafü...
Ein Forschungsinstitut analysiert lange DNA-Sequenzen, um genetische Marker zu identifizieren. Dies erfordert ein sehr tiefes neuronales Netzwerk, um komplexe Muster über lange ...