create_dl_layer_affine_gridT_create_dl_layer_affine_gridCreateDlLayerAffineGridCreateDlLayerAffineGridcreate_dl_layer_affine_grid (Operator)

Name

create_dl_layer_affine_gridT_create_dl_layer_affine_gridCreateDlLayerAffineGridCreateDlLayerAffineGridcreate_dl_layer_affine_grid — Erstellen eines Affine-Grid-Layers.

Signatur

create_dl_layer_affine_grid( : : DLLayerInput, LayerName, Width, Height, GenParamName, GenParamValue : DLLayerAffineGrid)

Herror T_create_dl_layer_affine_grid(const Htuple DLLayerInput, const Htuple LayerName, const Htuple Width, const Htuple Height, const Htuple GenParamName, const Htuple GenParamValue, Htuple* DLLayerAffineGrid)

void CreateDlLayerAffineGrid(const HTuple& DLLayerInput, const HTuple& LayerName, const HTuple& Width, const HTuple& Height, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* DLLayerAffineGrid)

HDlLayer HDlLayer::CreateDlLayerAffineGrid(const HString& LayerName, Hlong Width, Hlong Height, const HTuple& GenParamName, const HTuple& GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerAffineGrid(const HString& LayerName, Hlong Width, Hlong Height, const HString& GenParamName, const HString& GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerAffineGrid(const char* LayerName, Hlong Width, Hlong Height, const char* GenParamName, const char* GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerAffineGrid(const wchar_t* LayerName, Hlong Width, Hlong Height, const wchar_t* GenParamName, const wchar_t* GenParamValue) const   ( Nur Windows)

static void HOperatorSet.CreateDlLayerAffineGrid(HTuple DLLayerInput, HTuple layerName, HTuple width, HTuple height, HTuple genParamName, HTuple genParamValue, out HTuple DLLayerAffineGrid)

HDlLayer HDlLayer.CreateDlLayerAffineGrid(string layerName, int width, int height, HTuple genParamName, HTuple genParamValue)

HDlLayer HDlLayer.CreateDlLayerAffineGrid(string layerName, int width, int height, string genParamName, string genParamValue)

def create_dl_layer_affine_grid(dllayer_input: HHandle, layer_name: str, width: int, height: int, gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[int, float, str]]) -> HHandle

Beschreibung

Der Operator create_dl_layer_affine_gridcreate_dl_layer_affine_gridCreateDlLayerAffineGridCreateDlLayerAffineGridcreate_dl_layer_affine_grid erzeugt einen Affine-Grid-Layer, der ein 2D-Gitter zurückgibt, welches durch eine affine Transformation bestimmt wird. Das Handle des Affine-Grid-Layers wird in DLLayerAffineGridDLLayerAffineGridDLLayerAffineGridDLLayerAffineGriddllayer_affine_grid zurückgegeben. Affine Gitter werden üblicherweise als Abtastgitter an Grid-Sample-Layer übergeben, um affine Transformationen auf Bilder oder Merkmalskarten anzuwenden, siehe create_dl_layer_grid_samplecreate_dl_layer_grid_sampleCreateDlLayerGridSampleCreateDlLayerGridSamplecreate_dl_layer_grid_sample.

Der Parameter DLLayerInputDLLayerInputDLLayerInputDLLayerInputdllayer_input bestimmt den zuführenden Eingabelayer und erwartet das Layer-Handle als Wert. Die Eingabe besteht aus einem Batch von affinen 2D-Transformationsmatrizen (Höhe = 2, Breite = 3). Diese werden im Format WHC übergeben, welches für Breite (Width), Höhe (Height) und Kanal (Channels) steht. Der Kanal muss dabei immer 1 sein. Für weitere Informationen zu affinen Transformationen siehe affine_trans_image_sizeaffine_trans_image_sizeAffineTransImageSizeAffineTransImageSizeaffine_trans_image_size.

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 Parameter WidthWidthWidthwidthwidth und HeightHeightHeightheightheight definieren die Ausgabegröße. Für einen Batch von N affinen Transformationsmatrizen, erzeugt der Affine-Grid-Layer einen Batch von N Gittern der Dimension (HeightHeightHeightheightheight, WidthWidthWidthwidthwidth, 2). Diese werden im Format CHW (Kanal (Channels), Höhe (Height), Breite (Width)) zurückgegeben.

Durch eine affine Transformationsmatrix wird ein Punkt eines Bildes der Größe (WidthWidthWidthwidthwidth, HeightHeightHeightheightheight) auf den Punkt abgebildet gemäß:

Dabei bezieht sich auf die Spaltenkoordinate und auf die Zeilenkoordinate. Für eine affine Transformationsmatrix eines Eingabe-Batches ( ) entsprechen die ausgegebenen Tensorwerte und den transformierten Spalten- und Zeilenwerten und des Punktes .

Die Gitterpositionen werden mit den Ausgabedimensionen WidthWidthWidthwidthwidth und HeightHeightHeightheightheight normiert, um Werte im Bereich von zu erhalten. Dabei entsprechen die Werte , dem oberen linken Pixel und , beschreiben das untere rechte Pixel. Die Extrema beziehen sich auf die Mittelpunkte der Eckpixel.

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

'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_affine_gridcreate_dl_layer_affine_gridCreateDlLayerAffineGridCreateDlLayerAffineGridcreate_dl_layer_affine_grid 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 Parameter set get
'input_layer'"input_layer""input_layer""input_layer""input_layer" (DLLayerInputDLLayerInputDLLayerInputDLLayerInputdllayer_input) x
'name'"name""name""name""name" (LayerNameLayerNameLayerNamelayerNamelayer_name) x x
'grid_size'"grid_size""grid_size""grid_size""grid_size" (WidthWidthWidthwidthwidth, HeightHeightHeightheightheight) x
'output_layer'"output_layer""output_layer""output_layer""output_layer" (DLLayerAffineGridDLLayerAffineGridDLLayerAffineGridDLLayerAffineGriddllayer_affine_grid) x
'shape'"shape""shape""shape""shape" x
'type'"type""type""type""type" x
Generische Layer Parameter 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)

Eingabelayer für einen Batch von affinen Transformationsmatrizen der Form [3,2,1].

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

Name des Ausgabelayers.

WidthWidthWidthwidthwidth (input_control)  number HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Breite des Gitters.

Default: 256

HeightHeightHeightheightheight (input_control)  number HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Höhe des Gitters.

Default: 256

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

Namen der generischen Eingabeparameter.

Default: []

Werteliste: '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"

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

Affine-Grid-Layer.

Beispiel (HDevelop)

* Create affine grid layer for images of size (3,5).
create_dl_layer_input ('input', [3,2,1], [], [], DLLayerInput)
create_dl_layer_affine_grid (DLLayerInput, 'affine_grid', 5, 3, ['is_inference_output'], ['true'], DLLayerAffineGrid)
*
* Create an affine transformation which represents a translation
* to the right by one pixel.
* As the affine grid layer uses normalized pixel positions in
* the range of [-1,1] the translation value must be normalized
* as well. For Width = 5 the normalized column values are
* [-1, -0.5, 0.0, 0.5, 1.0]. Hence, translating by one pixel
* to the right corresponds to a translation value of 0.5 in
* x-direction.
hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_translate (HomMat2DIdentity, 0.5, 0, HomMat2DTranslate)
*
* For better visualization add permutation layer to get an
* output image of size (3,5) where the first channel describes
* the transformed (normalized) column coordinates and the second
* channel describes the transformed (normalized) row coordinates.
create_dl_layer_permutation (DLLayerAffineGrid, 'permute', ['height','depth','width','batch'], [], [], DLLayerPermutation)
*
* Create and apply dl model
create_dl_model (DLLayerPermutation, DLModelHandle)
DLSample := dict{input: HomMat2DTranslate}
apply_dl_model (DLModelHandle, DLSample, [], DLResultBatch)

Vorgänger

create_dl_layer_inputcreate_dl_layer_inputCreateDlLayerInputCreateDlLayerInputcreate_dl_layer_input

Nachfolger

create_dl_layer_grid_samplecreate_dl_layer_grid_sampleCreateDlLayerGridSampleCreateDlLayerGridSamplecreate_dl_layer_grid_sample, create_dl_layer_permutationcreate_dl_layer_permutationCreateDlLayerPermutationCreateDlLayerPermutationcreate_dl_layer_permutation

Siehe auch

affine_trans_image_sizeaffine_trans_image_sizeAffineTransImageSizeAffineTransImageSizeaffine_trans_image_size

Modul

Deep Learning Professional