?> addLayer - WeAreCAS
deepLearn

addLayer

Beschreibung

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.

deepLearn.addLayer / modelTable={name='modellName'}, name='schichtName', layer={type='schichtTyp', ...schichtspezifische-parameter...}, srcLayers={'quellSchichtName1', 'quellSchichtName2', ...};
Einstellungen
ParameterBeschreibung
modelTableGibt die In-Memory-Tabelle an, die das zu modifizierende Deep-Learning-Modell enthält.
nameGibt einen eindeutigen Namen für die neue Schicht an. Dieser Name wird verwendet, um in nachfolgenden Schichten darauf zu verweisen.
layerDefiniert die Eigenschaften der hinzuzufügenden Schicht, einschließlich ihres Typs (z. B. 'INPUT', 'CONVOLUTION', 'POOLING', 'FC') und anderer typspezifischer Parameter.
srcLayersGibt eine Liste von Namen der Quellschichten an, die als Eingabe für diese neue Schicht dienen.
replaceWenn auf TRUE gesetzt, wird eine vorhandene Schicht mit demselben Namen durch diese neue Schicht ersetzt.
sharingWeightsGibt 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.
Datenaufbereitung
Erstellung eines leeren Modells

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;

Beispiele

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).

SAS® / CAS-Code
Kopiert!
1PROC CAS;
2DEEPLEARN.addLayer /
3 modelTable={name='meinLeeresModell'},
4 name='Input1',
5 layer={type='input', nchannels=3, width=224, height=224, scale=1.0/255.0};
6RUN;
Ergebnis :
Die Aktion fügt die Schicht 'Input1' zum Modell 'meinLeeresModell' hinzu. Die Modelltabelle wird aktualisiert und enthält nun die Definition dieser Input-Schicht, die für Bilder der Größe 224x224 mit 3 Farbkanälen konfiguriert ist und die Pixelwerte skaliert.

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).

SAS® / CAS-Code
Kopiert!
1PROC CAS;
2/* Zuerst eine Input-Schicht hinzufügen */
3DEEPLEARN.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 */
9DEEPLEARN.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 */
16DEEPLEARN.addLayer /
17 modelTable={name='meinLeeresModell'},
18 name='Pool1',
19 layer={type='pooling', width=2, height=2, stride=2, pool='max'},
20 srcLayers={'Conv1'};
21RUN;
Ergebnis :
Das Modell 'meinLeeresModell' enthält nun eine Sequenz von drei Schichten: 'Input1', 'Conv1' und 'Pool1'. Die Ausgabetabelle des Modells beschreibt die vollständige Architektur, einschließlich der Verbindungen zwischen den Schichten und ihrer jeweiligen Konfigurationen.

FAQ

Was ist der Zweck der `deepLearn.addLayer` Aktion?
Welche Parameter sind für die `addLayer`-Aktion erforderlich?
Welche Arten von Schichten können mit dem `layer`-Parameter hinzugefügt werden?
Wie kann ich eine vorhandene Schicht durch eine neue ersetzen?
Wie kann eine neue Schicht mit einer oder mehreren vorherigen Schichten verbunden werden?
Was ist der Zweck des Parameters `sharingWeights`?

Zugehörige Szenarien

Anwendungsfall
Standardfall: Aufbau eines CNN zur Bildklassifizierung für die Qualitätskontrolle

Ein Fertigungsunternehmen möchte ein neuronales Netzwerk aufbauen, um Produktfehler auf einem Förderband automatisch zu erkennen. Dieses Szenario testet den grundlegenden, seque...

Anwendungsfall
Grenzfall: Aufbau eines siamesischen Netzwerks mit geteilten Gewichten und Ersetzen einer Schicht

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ü...

Anwendungsfall
Performance-Test: Programmatischer Aufbau eines sehr tiefen Netzwerks für die Genomik

Ein Forschungsinstitut analysiert lange DNA-Sequenzen, um genetische Marker zu identifizieren. Dies erfordert ein sehr tiefes neuronales Netzwerk, um komplexe Muster über lange ...