create_dl_layer_class_id_conversionT_create_dl_layer_class_id_conversionCreateDlLayerClassIdConversionCreateDlLayerClassIdConversioncreate_dl_layer_class_id_conversion (Operator)

Name

create_dl_layer_class_id_conversionT_create_dl_layer_class_id_conversionCreateDlLayerClassIdConversionCreateDlLayerClassIdConversioncreate_dl_layer_class_id_conversion — Erstellen eines Klassen-ID-Konvertierungslayers.

Signatur

create_dl_layer_class_id_conversion( : : DLLayerInput, LayerName, ConversionMode, GenParamName, GenParamValue : DLLayerClassIdConversion)

Herror T_create_dl_layer_class_id_conversion(const Htuple DLLayerInput, const Htuple LayerName, const Htuple ConversionMode, const Htuple GenParamName, const Htuple GenParamValue, Htuple* DLLayerClassIdConversion)

void CreateDlLayerClassIdConversion(const HTuple& DLLayerInput, const HTuple& LayerName, const HTuple& ConversionMode, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* DLLayerClassIdConversion)

HDlLayer HDlLayer::CreateDlLayerClassIdConversion(const HString& LayerName, const HString& ConversionMode, const HTuple& GenParamName, const HTuple& GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerClassIdConversion(const HString& LayerName, const HString& ConversionMode, const HString& GenParamName, const HString& GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerClassIdConversion(const char* LayerName, const char* ConversionMode, const char* GenParamName, const char* GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerClassIdConversion(const wchar_t* LayerName, const wchar_t* ConversionMode, const wchar_t* GenParamName, const wchar_t* GenParamValue) const   (Nur Windows)

static void HOperatorSet.CreateDlLayerClassIdConversion(HTuple DLLayerInput, HTuple layerName, HTuple conversionMode, HTuple genParamName, HTuple genParamValue, out HTuple DLLayerClassIdConversion)

HDlLayer HDlLayer.CreateDlLayerClassIdConversion(string layerName, string conversionMode, HTuple genParamName, HTuple genParamValue)

HDlLayer HDlLayer.CreateDlLayerClassIdConversion(string layerName, string conversionMode, string genParamName, string genParamValue)

def create_dl_layer_class_id_conversion(dllayer_input: HHandle, layer_name: str, conversion_mode: str, gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[int, float, str]]) -> HHandle

Beschreibung

Der Operator create_dl_layer_class_id_conversioncreate_dl_layer_class_id_conversionCreateDlLayerClassIdConversionCreateDlLayerClassIdConversionCreateDlLayerClassIdConversioncreate_dl_layer_class_id_conversion erzeugt einen Klassen-ID-Konvertierungslayer, dessen Handle in DLLayerClassIdConversionDLLayerClassIdConversionDLLayerClassIdConversionDLLayerClassIdConversionDLLayerClassIdConversiondllayer_class_id_conversion zurückgegeben wird. Der Layer konvertiert zwischen den intern vom Netz verwendeten IDs und den Ziel-/Ausgabeklassen-IDs.

Das Netzwerk verwendet intern fortlaufende ganzzahlige Werte beginnend bei 0 als IDs (die Anzahl der Werte ist abhängig vom Modelltyp). Falls die Ziel-/Ausgabeklassen-IDs von den internen IDs abweichen, kann dieser Layer verwendet werden, um diese zu konvertieren. Die Ziel-/Ausgabeklassen-IDs werden in dem Modellparameter 'class_ids'"class_ids""class_ids""class_ids""class_ids""class_ids" gespeichert (siehe get_dl_model_paramget_dl_model_paramGetDlModelParamGetDlModelParamGetDlModelParamget_dl_model_param für weitere Informationen zu diesem Parameter). Wenn keine 'class_ids'"class_ids""class_ids""class_ids""class_ids""class_ids" gesetzt sind, kopiert dieser Layer die Eingabe in die Ausgabe.

Der Parameter ConversionModeConversionModeConversionModeConversionModeconversionModeconversion_mode gibt die Konvertierungsrichtung an und kann folgende Werte annehmen:

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

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

Die folgenden generischen Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name und die entsprechenden Werte GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value werden unterstützt:

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

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

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

Bestimmte Parameter von Layern, die mit create_dl_layer_class_id_conversioncreate_dl_layer_class_id_conversionCreateDlLayerClassIdConversionCreateDlLayerClassIdConversionCreateDlLayerClassIdConversioncreate_dl_layer_class_id_conversion 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_paramSetDlModelLayerParamSetDlModelLayerParamSetDlModelLayerParamset_dl_model_layer_param gesetzt werden können und welche mit get_dl_model_layer_paramget_dl_model_layer_paramGetDlModelLayerParamGetDlModelLayerParamGetDlModelLayerParamget_dl_model_layer_param oder get_dl_layer_paramget_dl_layer_paramGetDlLayerParamGetDlLayerParamGetDlLayerParamget_dl_layer_param ausgelesen werden können. Es ist zu beachten, dass die Operatoren set_dl_model_layer_paramset_dl_model_layer_paramSetDlModelLayerParamSetDlModelLayerParamSetDlModelLayerParamset_dl_model_layer_param und get_dl_model_layer_paramget_dl_model_layer_paramGetDlModelLayerParamGetDlModelLayerParamGetDlModelLayerParamget_dl_model_layer_param ein Modell benötigen, das mit create_dl_modelcreate_dl_modelCreateDlModelCreateDlModelCreateDlModelcreate_dl_model erzeugt wurde.

Layer-Parameter set get
'input_layer'"input_layer""input_layer""input_layer""input_layer""input_layer" (DLLayerInputDLLayerInputDLLayerInputDLLayerInputDLLayerInputdllayer_input)
'name'"name""name""name""name""name" (LayerNameLayerNameLayerNameLayerNamelayerNamelayer_name)
'output_layer'"output_layer""output_layer""output_layer""output_layer""output_layer" (DLLayerClassIdConversionDLLayerClassIdConversionDLLayerClassIdConversionDLLayerClassIdConversionDLLayerClassIdConversiondllayer_class_id_conversion)
'shape'"shape""shape""shape""shape""shape"
'to_class_id'"to_class_id""to_class_id""to_class_id""to_class_id""to_class_id" (ConversionModeConversionModeConversionModeConversionModeconversionModeconversion_mode)
'type'"type""type""type""type""type"
Generische Layer-Parameter set get
'is_inference_output'"is_inference_output""is_inference_output""is_inference_output""is_inference_output""is_inference_output"
'num_trainable_params'"num_trainable_params""num_trainable_params""num_trainable_params""num_trainable_params""num_trainable_params"

Ausführungsinformationen

Parameter

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

Zuführender Layer.

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

Name des Ausgabelayers.

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

Richtung der Klassen-ID-Konvertierung.

Defaultwert: 'from_class_id' "from_class_id" "from_class_id" "from_class_id" "from_class_id" "from_class_id"

Werteliste: 'from_class_id'"from_class_id""from_class_id""from_class_id""from_class_id""from_class_id", 'to_class_id'"to_class_id""to_class_id""to_class_id""to_class_id""to_class_id"

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

Namen der generischen Eingabeparameter.

Defaultwert: []

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

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

Defaultwert: []

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

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

Klassen-ID-Konvertierungslayer.

Beispiel (HDevelop)

* Example demonstrating the usage of
* create_dl_layer_class_id_conversion.
*
dev_update_off ()
set_system ('seed_rand', 42)
*
* Create simple segmentation model.
NumClasses := 3
InputShape := [32, 32, 3]
*
* Input feeding layers.
create_dl_layer_input ('image', InputShape, [], [], DLLayerInput)
create_dl_layer_input ('target', [InputShape[0],InputShape[1],1], [], [], \
                       DLLayerTarget)
create_dl_layer_class_id_conversion (DLLayerTarget, 'target_internal', \
                                     'from_class_id', [], [], \
                                     DLLayerTargetInternal)
* Feature extraction layers.
create_dl_layer_convolution (DLLayerInput, 'conv1', 3, 1, 1, 32, 1, \
                             'half_kernel_size', 'relu', [], [], \
                             DLLayerConv1)
create_dl_layer_convolution (DLLayerConv1, 'conv2', 3, 1, 1, 32, 1, \
                             'half_kernel_size', 'relu', [], [], \
                             DLLayerConv2)
* Output generation layers.
create_dl_layer_convolution (DLLayerConv2, 'conv_final', 1, 1, 1, \
                             NumClasses, 1, 'none', 'none', [], [], \
                             DLLayerConvFinal)
create_dl_layer_softmax (DLLayerConvFinal, 'softmax', [], [], \
                          DLLayerSoftMax)
create_dl_layer_depth_max (DLLayerSoftMax, 'output_internal', \
                           'argmax', [], [], DLLayerOutputInternal, _)
create_dl_layer_class_id_conversion (DLLayerOutputInternal, 'output', \
                                     'to_class_id', [], [], DLLayerOutput)
* Loss layer.
create_dl_layer_loss_cross_entropy (DLLayerSoftMax, DLLayerTargetInternal, \
                                    [], 'loss', 1.0, [], [], DLLayerLoss)
*
* Create the model.
create_dl_model ([DLLayerOutput, DLLayerLoss], DLModelHandle)
set_dl_model_param (DLModelHandle, 'type', 'segmentation')
set_dl_model_param (DLModelHandle, 'runtime', 'cpu')
*
* Test model on dummy example data.
read_image (Image, 'claudia')
zoom_image_size (Image, Image, InputShape[0], InputShape[1], 'constant')
convert_image_type (Image, Image, 'real')
*
* Fill target image with specific target class IDs.
ClassIDs := [42, 17, 5]
gen_image_const (Target, 'real', InputShape[0], InputShape[1])
paint_region (Target, Target, Target, ClassIDs[0], 'fill')
gen_rectangle1 (RectClass1, 1, 3, 16, 27)
paint_region (RectClass1, Target, Target, ClassIDs[1], 'fill')
gen_rectangle1 (RectClass2, 19, 1, 30, 30)
paint_region (RectClass2, Target, Target, ClassIDs[2], 'fill')
*
* Set class IDs in the model.
set_dl_model_param (DLModelHandle, 'class_ids', ClassIDs)
*
* Create test sample.
create_dict (DLSample)
set_dict_object (Image, DLSample, 'image')
set_dict_object (Target, DLSample, 'target')
*
* Train model for a few iterations. Note that training would not
* work without the first class ID conversion layer 'target_internal'.
for Idx := 1 to 100 by 1
    train_dl_model_batch (DLModelHandle, DLSample, DLTrainResult)
endfor
*
* Apply model on test image. With the second class ID conversion
* layer 'output', the image now contains values according to the
* target IDs in segmentation_image.
apply_dl_model (DLModelHandle, DLSample, [], DLApplyResult)
get_dict_object (SegmentationImage, DLApplyResult, 'output')
dev_display (SegmentationImage)

Modul

Deep Learning Training