create_dl_layer_sliceT_create_dl_layer_sliceCreateDlLayerSliceCreateDlLayerSlicecreate_dl_layer_slice (Operator)

Name

create_dl_layer_sliceT_create_dl_layer_sliceCreateDlLayerSliceCreateDlLayerSlicecreate_dl_layer_slice — Erstellen eines Slice-Layers.

Signatur

create_dl_layer_slice( : : DLLayerInput, LayerName, Axes, StartIndices, EndIndices, Steps, GenParamName, GenParamValue : DLLayerSlice)

Herror T_create_dl_layer_slice(const Htuple DLLayerInput, const Htuple LayerName, const Htuple Axes, const Htuple StartIndices, const Htuple EndIndices, const Htuple Steps, const Htuple GenParamName, const Htuple GenParamValue, Htuple* DLLayerSlice)

void CreateDlLayerSlice(const HTuple& DLLayerInput, const HTuple& LayerName, const HTuple& Axes, const HTuple& StartIndices, const HTuple& EndIndices, const HTuple& Steps, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* DLLayerSlice)

HDlLayer HDlLayer::CreateDlLayerSlice(const HString& LayerName, const HTuple& Axes, const HTuple& StartIndices, const HTuple& EndIndices, const HTuple& Steps, const HTuple& GenParamName, const HTuple& GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerSlice(const HString& LayerName, Hlong Axes, Hlong StartIndices, Hlong EndIndices, Hlong Steps, const HString& GenParamName, const HString& GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerSlice(const char* LayerName, Hlong Axes, Hlong StartIndices, Hlong EndIndices, Hlong Steps, const char* GenParamName, const char* GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerSlice(const wchar_t* LayerName, Hlong Axes, Hlong StartIndices, Hlong EndIndices, Hlong Steps, const wchar_t* GenParamName, const wchar_t* GenParamValue) const   ( Nur Windows)

static void HOperatorSet.CreateDlLayerSlice(HTuple DLLayerInput, HTuple layerName, HTuple axes, HTuple startIndices, HTuple endIndices, HTuple steps, HTuple genParamName, HTuple genParamValue, out HTuple DLLayerSlice)

HDlLayer HDlLayer.CreateDlLayerSlice(string layerName, HTuple axes, HTuple startIndices, HTuple endIndices, HTuple steps, HTuple genParamName, HTuple genParamValue)

HDlLayer HDlLayer.CreateDlLayerSlice(string layerName, int axes, int startIndices, int endIndices, int steps, string genParamName, string genParamValue)

def create_dl_layer_slice(dllayer_input: HHandle, layer_name: str, axes: MaybeSequence[Union[int, str]], start_indices: MaybeSequence[int], end_indices: MaybeSequence[int], steps: MaybeSequence[int], gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[int, float, str]]) -> HHandle

Beschreibung

Der Operator create_dl_layer_slicecreate_dl_layer_sliceCreateDlLayerSliceCreateDlLayerSlicecreate_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 DLLayerSliceDLLayerSliceDLLayerSliceDLLayerSlicedllayer_slice zurückgegeben.

Der Parameter DLLayerInputDLLayerInputDLLayerInputDLLayerInputdllayer_input bestimmt den zuführenden Eingabelayer und erwartet das Layer-Handle als Wert.

Der Parameter LayerNameLayerNameLayerNamelayerNamelayer_name legt einen individuellen Layernamen fest. Es ist zu beachten, dass beim Erstellen eines Modells mit create_dl_modelcreate_dl_modelCreateDlModelCreateDlModelcreate_dl_model jeder Layer des erstellten Netzes einen eindeutigen Namen haben muss.

Die folgenden Parameter werden für die Slice-Operation verwendet:

'starts'"starts""starts""starts""starts"

Bestimmt die Startindizes der Slice-Operation entlang der in 'axes'"axes""axes""axes""axes" angegebenen Achsen. Dieser Parameter wird mit StartIndicesStartIndicesStartIndicesstartIndicesstart_indices angegeben.

'ends'"ends""ends""ends""ends"

Bestimmt die Endindizes der Slice-Operation entlang der in 'axes'"axes""axes""axes""axes" angegebenen Achsen. Dieser Parameter wird mit EndIndicesEndIndicesEndIndicesendIndicesend_indices angegeben.

'steps'"steps""steps""steps""steps"

Gibt die Schrittweite für die Slice-Operation entlang der in 'axes'"axes""axes""axes""axes" angegebenen Achsen an. Der Parameter 'steps'"steps""steps""steps""steps" muss entweder ein leeres Tupel sein oder die gleiche Länge wie 'axes'"axes""axes""axes""axes" haben. Wenn 'steps'"steps""steps""steps""steps" leer ist, wird die Schrittweite für alle 'axes'"axes""axes""axes""axes" auf 1 gesetzt. Dieser Parameter wird mit StepsStepsStepsstepssteps angegeben.

'axes'"axes""axes""axes""axes"

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 AxesAxesAxesaxesaxes 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'"starts""starts""starts""starts" und 'ends'"ends""ends""ends""ends" die gleiche Länge wie der Parameter 'axes'"axes""axes""axes""axes" haben. Negative Werte in 'starts'"starts""starts""starts""starts" und 'ends'"ends""ends""ends""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'"axes""axes""axes""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

Anpassung der Achsen

Negative Werte im 'axes'"axes""axes""axes""axes"-Parameter werden durch Addition der Rangzahl des Eingabetensors zu jeder negativen Achse nicht-negativ gemacht:

Anpassung von 'starts' und 'ends'

Negative Anpassung des Index

Negative Werte in 'starts'"starts""starts""starts""starts" und 'ends'"ends""ends""ends""ends" werden durch Addition der entsprechenden Tensor-Dimension angepasst:

'starts'"starts""starts""starts""starts"[ ] wird durch Hinzufügen der Größe der Tensordimension angepasst.

'ends'"ends""ends""ends""ends"[ ] wird durch Hinzufügen der Größe der Tensordimension angepasst.

Begrenzen des 'starts'-Wertes

Angepasste 'starts'"starts""starts""starts""starts"-Werte werden auf den Bereich begrenzt:

Begrenzen des 'ends'-Wertes

Angepasste 'ends'"ends""ends""ends""ends"-Werte werden basierend auf der Richtung des Schritts (Stepping) begrenzt:

  • Positives Stepping: 'ends'"ends""ends""ends""ends" wird auf den Bereich [0,dims] begrenzt.

  • Negatives Stepping: 'ends'"ends""ends""ends""ends" wird auf den Bereich [-1, dims - 1] begrenzt.

Die folgenden generischen Parameter GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name und die entsprechenden Werte GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value werden unterstützt:

'axes_format'"axes_format""axes_format""axes_format""axes_format":

Kompatibilitätsparameter, der bestimmt, ob die angegebenen AxesAxesAxesaxesaxes 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'"axes_format""axes_format""axes_format""axes_format" 'nchw'"nchw""nchw""nchw""nchw" entlang der Tiefe geschnitten. Wird 'axes_format'"axes_format""axes_format""axes_format""axes_format" auf 'whcn'"whcn""whcn""whcn""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'"nchw""nchw""nchw""nchw", 'whcn'"whcn""whcn""whcn""whcn"

Default: 'whcn'"whcn""whcn""whcn""whcn"

'is_inference_output'"is_inference_output""is_inference_output""is_inference_output""is_inference_output":

Bestimmt, ob apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelapply_dl_model die Ausgabe dieses Layers im Dictionary DLResultBatchDLResultBatchDLResultBatchDLResultBatchdlresult_batch zurückgibt, auch ohne den Layer in OutputsOutputsOutputsoutputsoutputs anzugeben ('true'"true""true""true""true"), oder nur falls er angegeben wird ('false'"false""false""false""false").

Werteliste: 'true'"true""true""true""true", 'false'"false""false""false""false"

Default: 'false'"false""false""false""false"

Bestimmte Parameter von Layern, die mit create_dl_layer_slicecreate_dl_layer_sliceCreateDlLayerSliceCreateDlLayerSlicecreate_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_paramset_dl_model_layer_paramSetDlModelLayerParamSetDlModelLayerParamset_dl_model_layer_param gesetzt werden können und welche mit get_dl_model_layer_paramget_dl_model_layer_paramGetDlModelLayerParamGetDlModelLayerParamget_dl_model_layer_param oder get_dl_layer_paramget_dl_layer_paramGetDlLayerParamGetDlLayerParamget_dl_layer_param ausgelesen werden können. Es ist zu beachten, dass die Operatoren set_dl_model_layer_paramset_dl_model_layer_paramSetDlModelLayerParamSetDlModelLayerParamset_dl_model_layer_param und get_dl_model_layer_paramget_dl_model_layer_paramGetDlModelLayerParamGetDlModelLayerParamget_dl_model_layer_param ein Modell benötigen, das mit create_dl_modelcreate_dl_modelCreateDlModelCreateDlModelcreate_dl_model erzeugt wurde.

Layer Parameters set get
'input_layer'"input_layer""input_layer""input_layer""input_layer" (DLLayerInputDLLayerInputDLLayerInputDLLayerInputdllayer_input) x
'name'"name""name""name""name" (LayerNameLayerNameLayerNamelayerNamelayer_name) x x
'axes'"axes""axes""axes""axes" x
'starts'"starts""starts""starts""starts" x
'ends'"ends""ends""ends""ends" x
'steps'"steps""steps""steps""steps" x
'output_layer'"output_layer""output_layer""output_layer""output_layer" (DLLayerSliceDLLayerSliceDLLayerSliceDLLayerSlicedllayer_slice) x
'shape'"shape""shape""shape""shape" x
'type'"type""type""type""type" x
Generic Layer Parameters set get
'is_inference_output'"is_inference_output""is_inference_output""is_inference_output""is_inference_output" x x
'num_trainable_params'"num_trainable_params""num_trainable_params""num_trainable_params""num_trainable_params" x

Ausführungsinformationen

Parameter

DLLayerInputDLLayerInputDLLayerInputDLLayerInputdllayer_input (input_control)  dl_layer HDlLayer, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Zuführender Layer.

Default: 'DLLayerInput' "DLLayerInput" "DLLayerInput" "DLLayerInput" "DLLayerInput"

LayerNameLayerNameLayerNamelayerNamelayer_name (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Name des Ausgabelayers.

AxesAxesAxesaxesaxes (input_control)  number(-array) HTupleMaybeSequence[Union[int, str]]HTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Achsen entlang denen geschnitten wird.

Default: 0

Wertevorschläge: 0, 'width'"width""width""width""width", 1, 'height'"height""height""height""height", 2, 'depth'"depth""depth""depth""depth"

StartIndicesStartIndicesStartIndicesstartIndicesstart_indices (input_control)  number(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Start-Indizes der zugehörigen Achsen (inklusive).

Default: 0

EndIndicesEndIndicesEndIndicesendIndicesend_indices (input_control)  number(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

End-Indizes der zugehörigen Achsen (exklusiv).

Default: 1

StepsStepsStepsstepssteps (input_control)  number(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Schrittweite.

Default: []

GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control)  attribute.name(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Namen der generischen Eingabeparameter.

Default: []

Werteliste: 'axes_format'"axes_format""axes_format""axes_format""axes_format", 'is_inference_output'"is_inference_output""is_inference_output""is_inference_output""is_inference_output"

GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control)  attribute.value(-array) HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

Werte der generischen Eingabeparameter.

Default: []

Wertevorschläge: 'true'"true""true""true""true", 'false'"false""false""false""false", 'nchw'"nchw""nchw""nchw""nchw", 'whcn'"whcn""whcn""whcn""whcn"

DLLayerSliceDLLayerSliceDLLayerSliceDLLayerSlicedllayer_slice (output_control)  dl_layer HDlLayer, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Ausgabelayer.

Modul

Deep Learning Professional