create_dl_layer_slice — Erstellen eines Slice-Layers.
create_dl_layer_slice( : : DLLayerInput, LayerName, Axes, StartIndices, EndIndices, Steps, GenParamName, GenParamValue : DLLayerSlice)
Der Operator create_dl_layer_slice erstellt eine Slice-Layer, der
den Abschnitt eines Tensors entlang bestimmter Achsen extrahiert,
basierend auf den angegebenen Start- und Endindizes sowie der
Schrittweite für die Slice-Operationen.
Das Handle des Slice-Layers wird in DLLayerSlice zurückgegeben.
Der Parameter DLLayerInput bestimmt den zuführenden Eingabelayer
und erwartet das Layer-Handle als Wert.
Der Parameter LayerName legt einen individuellen Layernamen fest.
Es ist zu beachten, dass beim Erstellen eines Modells mit
create_dl_model jeder Layer des erstellten Netzes einen
eindeutigen Namen haben muss.
Die folgenden Parameter werden für die Slice-Operation verwendet:
Bestimmt die Startindizes der Slice-Operation
entlang der in 'axes' angegebenen Achsen. Dieser Parameter
wird mit StartIndices angegeben.
Bestimmt die Endindizes der Slice-Operation entlang
der in 'axes' angegebenen Achsen. Dieser Parameter wird mit
EndIndices angegeben.
Gibt die Schrittweite für die Slice-Operation
entlang der in 'axes' angegebenen Achsen an.
Der Parameter 'steps' muss entweder ein leeres Tupel sein oder
die gleiche Länge wie 'axes' haben.
Wenn 'steps' leer ist, wird die Schrittweite für alle
'axes' auf 1 gesetzt.
Dieser Parameter wird mit Steps angegeben.
Gibt die Achsen an, entlang derer die
Slice-Operation durchgeführt wird.
Die Achsen sind im Format WHC definiert, wobei dies für Breite
(Width), Höhe (Height) und Kanal (Channels) steht.
Alternativ können die Achsen auch als Strings angegeben werden.
Das Schneiden entlang der Batch-Dimension ist nicht unterstützt.
Dieser Parameter wird mit Axes angegeben.
Der Slice-Layer ermöglicht das Ausschneiden eines Tensors entlang bestimmter Achsen und bietet flexible Anpassungsmöglichkeiten. Um korrekte Operationen sicherzustellen, müssen 'starts' und 'ends' die gleiche Länge wie der Parameter 'axes' haben. Negative Werte in 'starts' und 'ends' werden angepasst, indem die Größe der entsprechenden Dimension des Arrays addiert wird. Dadurch wird das Konzept des negativen Indexierens unterstützt, wie es in einigen Programmiersprachen üblich ist. Anschließend werden alle negativen Werte begrenzt, um ein Out-of-Bounds-Slicing zu verhindern.
Negative Werte in 'axes' werden angepasst, indem die Gesamtanzahl der Dimensionen des Tensors zur jeweiligen Achse addiert wird. Ein negativer Wert bedeutet, dass die Dimensionen von hinten gezählt werden. Der akzeptierte Bereich ist [, ] , wobei der Rang ist. Um bis zum Ende einer Dimension mit unbekannter Größe zu slicen, wird empfohlen, beim Vorwärtsslicen H_INT_MAX und beim Rückwärtsslicen H_INT_MIN zu verwenden.
Verarbeitung von Achsen und Indizes
Negative Werte im 'axes'-Parameter werden durch Addition der Rangzahl des Eingabetensors zu jeder negativen Achse nicht-negativ gemacht:
Negative Werte in 'starts' und 'ends' werden durch Addition der entsprechenden Tensor-Dimension angepasst:
'starts'[] wird durch Hinzufügen der Größe der Tensordimension angepasst.
'ends'[] wird durch Hinzufügen der Größe der Tensordimension angepasst.
Angepasste 'starts'-Werte werden auf den Bereich begrenzt:
Angepasste 'ends'-Werte werden basierend auf der Richtung des Schritts (Stepping) begrenzt:
Positives Stepping: 'ends' wird auf den Bereich [0,dims] begrenzt.
Negatives Stepping: 'ends' wird auf den Bereich [-1, dims - 1] begrenzt.
Die folgenden generischen Parameter GenParamName und die
entsprechenden Werte GenParamValue werden unterstützt:
Kompatibilitätsparameter, der bestimmt, ob die angegebenen Axes
im WHCN format (default) oder im NCHW format angegeben sind.
Der Parameter ändert, wie die angegebenen Achsen interpretiert werden.
So wird beispielsweise bei der Achse 1 und 'axes_format'
'nchw' entlang der Tiefe geschnitten.
Wird 'axes_format' auf 'whcn' gesetzt oder keine
Angabe gemacht, so wird entlang der Höhe geschnitten.
Anstelle von Indizes können auch Strings verwendet werden, um die Achsen zu spezifizieren.
Werteliste: 'nchw', 'whcn'
Default: 'whcn'
Bestimmt, ob apply_dl_model die Ausgabe dieses Layers im
Dictionary DLResultBatch zurückgibt, auch ohne den
Layer in Outputs anzugeben ('true'), oder
nur falls er angegeben wird ('false').
Werteliste: 'true', 'false'
Default: 'false'
Bestimmte Parameter von Layern, die mit create_dl_layer_slice
erzeugt wurden, können mit weiteren Operatoren gesetzt und abgerufen werden.
Die folgenden Tabellen geben einen Überblick, welche Parameter mit
set_dl_model_layer_param gesetzt werden können und welche mit
get_dl_model_layer_param oder get_dl_layer_param ausgelesen
werden können. Es ist zu beachten, dass die Operatoren
set_dl_model_layer_param und get_dl_model_layer_param ein
Modell benötigen, das mit create_dl_model erzeugt wurde.
| Layer Parameters | set |
get |
|---|---|---|
'input_layer' (DLLayerInput) |
x
|
|
'name' (LayerName) |
x |
x
|
| 'axes' | x
|
|
| 'starts' | x
|
|
| 'ends' | x
|
|
| 'steps' | x
|
|
'output_layer' (DLLayerSlice) |
x
|
|
| 'shape' | x
|
|
| 'type' | x
|
| Generic Layer Parameters | set |
get |
|---|---|---|
| 'is_inference_output' | x |
x
|
| 'num_trainable_params' | x
|
DLLayerInput (input_control) dl_layer → (handle)
Zuführender Layer.
Default: 'DLLayerInput'
LayerName (input_control) string → (string)
Name des Ausgabelayers.
Axes (input_control) number(-array) → (integer / string)
Achsen entlang denen geschnitten wird.
Default: 0
Wertevorschläge: 0, 'width', 1, 'height', 2, 'depth'
StartIndices (input_control) number(-array) → (integer)
Start-Indizes der zugehörigen Achsen (inklusive).
Default: 0
EndIndices (input_control) number(-array) → (integer)
End-Indizes der zugehörigen Achsen (exklusiv).
Default: 1
Steps (input_control) number(-array) → (integer)
Schrittweite.
Default: []
GenParamName (input_control) attribute.name(-array) → (string)
Namen der generischen Eingabeparameter.
Default: []
Werteliste: 'axes_format', 'is_inference_output'
GenParamValue (input_control) attribute.value(-array) → (string / integer / real)
Werte der generischen Eingabeparameter.
Default: []
Wertevorschläge: 'true', 'false', 'nchw', 'whcn'
DLLayerSlice (output_control) dl_layer → (handle)
Ausgabelayer.
Deep Learning Professional