create_dl_layer_loss_cross_entropyT_create_dl_layer_loss_cross_entropyCreateDlLayerLossCrossEntropyCreateDlLayerLossCrossEntropycreate_dl_layer_loss_cross_entropy (Operator)

Name

create_dl_layer_loss_cross_entropyT_create_dl_layer_loss_cross_entropyCreateDlLayerLossCrossEntropyCreateDlLayerLossCrossEntropycreate_dl_layer_loss_cross_entropy — Erstellen eines Cross-Entropy-Loss-Layers.

Signatur

create_dl_layer_loss_cross_entropy( : : DLLayerInput, DLLayerTarget, DLLayerWeights, LayerName, LossWeight, GenParamName, GenParamValue : DLLayerLossCrossEntropy)

Herror T_create_dl_layer_loss_cross_entropy(const Htuple DLLayerInput, const Htuple DLLayerTarget, const Htuple DLLayerWeights, const Htuple LayerName, const Htuple LossWeight, const Htuple GenParamName, const Htuple GenParamValue, Htuple* DLLayerLossCrossEntropy)

void CreateDlLayerLossCrossEntropy(const HTuple& DLLayerInput, const HTuple& DLLayerTarget, const HTuple& DLLayerWeights, const HTuple& LayerName, const HTuple& LossWeight, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* DLLayerLossCrossEntropy)

HDlLayer HDlLayer::CreateDlLayerLossCrossEntropy(const HDlLayer& DLLayerTarget, const HDlLayer& DLLayerWeights, const HString& LayerName, double LossWeight, const HTuple& GenParamName, const HTuple& GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerLossCrossEntropy(const HDlLayer& DLLayerTarget, const HDlLayer& DLLayerWeights, const HString& LayerName, double LossWeight, const HString& GenParamName, const HString& GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerLossCrossEntropy(const HDlLayer& DLLayerTarget, const HDlLayer& DLLayerWeights, const char* LayerName, double LossWeight, const char* GenParamName, const char* GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerLossCrossEntropy(const HDlLayer& DLLayerTarget, const HDlLayer& DLLayerWeights, const wchar_t* LayerName, double LossWeight, const wchar_t* GenParamName, const wchar_t* GenParamValue) const   (Nur Windows)

static void HOperatorSet.CreateDlLayerLossCrossEntropy(HTuple DLLayerInput, HTuple DLLayerTarget, HTuple DLLayerWeights, HTuple layerName, HTuple lossWeight, HTuple genParamName, HTuple genParamValue, out HTuple DLLayerLossCrossEntropy)

HDlLayer HDlLayer.CreateDlLayerLossCrossEntropy(HDlLayer DLLayerTarget, HDlLayer DLLayerWeights, string layerName, double lossWeight, HTuple genParamName, HTuple genParamValue)

HDlLayer HDlLayer.CreateDlLayerLossCrossEntropy(HDlLayer DLLayerTarget, HDlLayer DLLayerWeights, string layerName, double lossWeight, string genParamName, string genParamValue)

def create_dl_layer_loss_cross_entropy(dllayer_input: HHandle, dllayer_target: HHandle, dllayer_weights: HHandle, layer_name: str, loss_weight: float, gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[int, float, str]]) -> HHandle

Beschreibung

Der Operator create_dl_layer_loss_cross_entropycreate_dl_layer_loss_cross_entropyCreateDlLayerLossCrossEntropyCreateDlLayerLossCrossEntropyCreateDlLayerLossCrossEntropycreate_dl_layer_loss_cross_entropy erstellt einen Cross-Entropy-Loss-Layer, dessen Handle in DLLayerLossCrossEntropyDLLayerLossCrossEntropyDLLayerLossCrossEntropyDLLayerLossCrossEntropyDLLayerLossCrossEntropydllayer_loss_cross_entropy zurückgegeben wird. Dieser Layer berechnet den zweidimensionalen Cross-Entropy-Loss der Eingabe (gegeben durch DLLayerInputDLLayerInputDLLayerInputDLLayerInputDLLayerInputdllayer_input) mit dem entsprechenden Target (gegeben durch DLLayerTargetDLLayerTargetDLLayerTargetDLLayerTargetDLLayerTargetdllayer_target) und Gewicht (gegeben durch DLLayerWeightsDLLayerWeightsDLLayerWeightsDLLayerWeightsDLLayerWeightsdllayer_weights).

Cross Entropy wird im üblicherweise genutzt um die Ähnlichkeit zweier Vektoren zu messen.

Beispiel:

Anschauungsbeispiel, bei dem ein Klassifikationsproblem auf Pixelebene mit drei Klassen vorliegt.

Der Eingabevektor für ein einzelnes Pixel ist (z.B. die Ausgabe eines Softmax-Layers), was bedeutet, dass der vorhergesagte Wert (z.B. die Wahrscheinlichkeit) 0.7 für die Klasse mit Index 0, 0.1 für die Klasse mit Index 1 und 0.2 für die Klasse mit Index 2 beträgt.

Der Zielvektor ist mit einer Wahrscheinlichkeit von 1.0 für die aktuelle Klasse und ansonsten 0.0. Die Entropie wird durch das Skalarprodukt dieser beiden Vektoren berechnet. Da der Zielvektor nur einen Eintrag ungleich Null hat kann er durch den Index der aktuellen Klasse anstelle eines Vektors angegeben werden, in diesem Fall .

Die Cross Entropy ist dann einfach der Wert des Eingabevektors beim Index der Zielklasse, also . Mit dieser Vereinfachung kann die Cross-Entropy-Loss-Funktion über ein Eingabebild definiert werden durch wobei die Eingabe aus einem Vorhersagevektor für jedes Pixel besteht, das Ziel und das Gewicht aus einem Wert und für jedes Eingabepixel bestehen, die Anzahl Pixel ist und die Summe aller Gewichte ist.

Dieser Layer erwartet mehrere Layer als Eingabe:

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.

Der Parameter LossWeightLossWeightLossWeightLossWeightlossWeightloss_weight bestimmt den skalaren Gewichtungsfaktor mit dem der in diesem Layer berechnete Loss multipliziert wird. Dieser Parameter kann genutzt werden um den Beitrag des Cross-Entropy-Loss zum gesamten Loss des Netzwerks zu bestimmen, falls mehrere Loss-Layer verwendet werden.

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_loss_cross_entropycreate_dl_layer_loss_cross_entropyCreateDlLayerLossCrossEntropyCreateDlLayerLossCrossEntropyCreateDlLayerLossCrossEntropycreate_dl_layer_loss_cross_entropy 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, DLLayerTargetDLLayerTargetDLLayerTargetDLLayerTargetDLLayerTargetdllayer_target, und/oder DLLayerWeightsDLLayerWeightsDLLayerWeightsDLLayerWeightsDLLayerWeightsdllayer_weights)
'loss_weight'"loss_weight""loss_weight""loss_weight""loss_weight""loss_weight" (LossWeightLossWeightLossWeightLossWeightlossWeightloss_weight)
'name'"name""name""name""name""name" (LayerNameLayerNameLayerNameLayerNamelayerNamelayer_name)
'output_layer'"output_layer""output_layer""output_layer""output_layer""output_layer" (DLLayerLossCrossEntropyDLLayerLossCrossEntropyDLLayerLossCrossEntropyDLLayerLossCrossEntropyDLLayerLossCrossEntropydllayer_loss_cross_entropy)
'shape'"shape""shape""shape""shape""shape"
'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)

Eingabelayer.

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

Ziellayer.

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

Gewichtelayer.

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

Name des Ausgabelayers.

LossWeightLossWeightLossWeightLossWeightlossWeightloss_weight (input_control)  number HTuplefloatHTupleHtuple (real) (double) (double) (double)

Gesamt-Loss-Gewicht, falls mehrere Losses im Netzwerk existieren.

Defaultwert: 1.0

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"

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

Cross-Entropy-Loss-Layer.

Modul

Deep Learning Training