create_dl_layer_input — Erstellen eines Eingabelayers.
create_dl_layer_input( : : LayerName, Shape, GenParamName, GenParamValue : DLLayerInput)
Der Operator create_dl_layer_input erzeugt einen Eingabelayer mit
räumlichen Dimensionen, die durch Shape gegeben sind. Zurückgegeben
wird das Handle des Eingabelayers, DLLayerInput.
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.
Wenn das erstellte Modell, z.B. mit apply_dl_model oder
train_dl_model_batch verwendet wird, muss
eine Zuordnung der Eingabe auf den entsprechenden Eingabelayer möglich sein.
Operatoren, die ein Modell anwenden, erwarten ein zuführendes Dictionary
DLSample, siehe Deep Learning / Modell.
Die erwähnte Zuordnung erfolgt über Dictionary-Einträge, wobei der
Schlüssel mit dem Namen des Eingabelayers übereinstimmt.
Eingaben für diesen Layer benötigen also einen Eintrag im
Sample-Dictionary mit dem Schlüssel LayerName (außer wenn der
'input_type' auf 'constant' gesetzt ist, siehe unten).
Der Parameter Shape definiert die Form der Eingabewerte (die
Werte, die im zuführendes Dictionary DLSample) angegeben sind und
muss ein Tupel der Länge drei sein, das die Breite,
Höhe und Tiefe der Eingabe enthält. Die Tupel-Werte müssen
als Ganzzahl angegeben werden haben unterschiedliche je nach Eingabetyp
verschiedene Bedeutungen:
für ein Eingabebild definiert die in Shape festgelegte Form
des Layers die Bildgröße.
Bilder müssen mit dem Typ real gegeben werden
(für Informationen über Bildtypen siehe Bild).
für ein Eingabetupel muss dessen Länge mit dem Produkt aus den
Einzelwerte in Shape, d.h., Breite
Höhe Tiefe übereinstimmen.
Die Tupelwerte werden entlang der Spalten- (Breiten-), Zeilen-
(Höhen-) und Tiefen-Achsen in dieser Reihenfolge verteilt.
Die Werte des Eingabetupels können entweder vom Typ integer oder
real sein.
Die Batchgröße muss später, nachdem das Modell mit create_dl_model
erstellt wurde, mit set_dl_model_param gesetzt werden.
Die folgenden generischen Parameter GenParamName und die
entsprechenden Werte GenParamValue werden unterstützt:
Bestimmt, ob das Eingabetupel auch
weniger Werte enthalten darf als die in Shape festgelegte
Gesamtdimension ('true') oder ob die Anzahl übereinstimmen muss
('false').
Dies kann z.B. der Fall sein, wenn eine Eingabe der Anzahl von
Objekten innerhalb eines Bildes entspricht und die Anzahl der Objekte sich
von Bild zu Bild ändert. Sind weniger Werte vorhanden als Shape
zulässt, werden die verbleibenden Werte auf Null gesetzt.
Shape sollte so gesetzt werden, dass es der maximal erwarteten
Länge entspricht. Für das obige Beispiel wäre dies die über den gesamten
Datensatz maximale Anzahl von Objekten innerhalb eines Bildes.
Default: 'false'.
Konstanter Ausgabewert.
Restriktion: Nur eine Ganzzahl oder Fließkommazahl kann gesetzt werden. Dieser Wert ist nur setzbar oder abrufbar, wenn 'input_type' = 'constant'.
Default: 0.0.
Definiert den Typ der erwarteten Eingabe. Die folgenden Werte sind möglich:
Der Layer erwartet eine der Batchgröße entsprechende Anzahl Eingabebilder.
Der Layer
erwartet ein Tupel von Regionen als Eingabe und konvertiert es intern in
ein Binärbild, in dem jede Region in einem Tiefenkanal kodiert ist.
Regionen werden gekürzt, wenn sie über die in Shape festgelegte
Breite oder Höhe hinaus gehen.
Die maximale Anzahl der Regionen wird durch die
Tiefe von Shape festgelegt.
Werden weniger Regionen gegeben, wird die Ausgabe mit leeren Bildern
(mit Nullen) aufgefüllt. Zum Beispiel
kann dies der Fall sein, wenn die Regionen Objekten innerhalb eines
Bildes entsprechen und die Anzahl der Objekte
sich von Bild zu Bild ändert.
Dieser Layer erwartet kein Schlüssel-Wert-Paar im Eingabe-Dictionary. Stattdessen werden alle Einträge innerhalb der Ausgabe dieses Layers mit dem für 'const_val' angegebenen Wert gefüllt.
Default: 'default'.
Für konstante Eingaben kann dieser Parameter auf 'true' gesetzt werden, wenn die Eingabe eine konstante Batchgröße, unabhängig von der für das Modell gesetzt Batchgröße, haben soll.
Default: 'false'.
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').
Default: 'false'
Bestimmte Parameter von Layern, die mit create_dl_layer_input
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-Parameter | set |
get
|
|---|---|---|
| 'input_layer' | x
|
|
'name' (LayerName) |
x |
x
|
'output_layer' (DLLayerInput) |
x
|
|
'shape' (Shape) |
x
|
|
| 'type' | x
|
| Generische Layer-Parameter | set |
get
|
|---|---|---|
| 'allow_smaller_tuple' | x
|
|
| 'const_val' |
(x) |
(x) |
| 'input_type' | x
|
|
| 'keep_batch_size_const' | x |
x
|
| 'is_inference_output' | x |
x
|
| 'num_trainable_params' | x
|
Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.
LayerName (input_control) string → (string)
Name des Ausgabelayers.
Shape (input_control) number-array → (integer)
Dimensionen der Eingabe (Breite, Höhe, Tiefe).
Default: [224,224,3]
GenParamName (input_control) attribute.name(-array) → (string)
Namen der generischen Eingabeparameter.
Default: []
Werteliste: 'allow_smaller_tuple', 'const_val', 'input_type', 'is_inference_output', 'keep_batch_size_const'
GenParamValue (input_control) attribute.value(-array) → (string / integer / real)
Werte der generischen Eingabeparameter.
Default: []
Wertevorschläge: 0.0, 'constant', 'default', 'false', 'region_to_bin', 'true'
DLLayerInput (output_control) dl_layer → (handle)
Eingabelayer.
* Create a model for summation.
create_dl_layer_input ('input_a', [2, 3, 4], [], [], DLLayerInputA)
create_dl_layer_input ('input_b', [2, 3, 4], [], [], DLLayerInputB)
create_dl_layer_elementwise ([DLLayerInputA, DLLayerInputB], 'sum', \
'sum', [], [], [], DLLayerElementWise)
create_dl_model (DLLayerElementWise, DLModel)
set_dl_model_param (DLModel, 'runtime', 'cpu')
*
* Add 'input_a' as an inference model output.
set_dl_model_layer_param (DLModel, 'input_a', 'is_inference_output', 'true')
*
* Feed input data as tuple (a) or image (b).
create_dict (Sample)
set_dict_tuple (Sample, 'input_a', [1:(2*3*4)])
gen_empty_obj (InputB)
for I := 1 to 4 by 1
gen_image_const (Channel, 'real', 2, 3)
get_region_points (Channel, Rows, Cols)
set_grayval (Channel, Rows, Cols, gen_tuple_const(|Rows|, I))
append_channel (InputB, Channel, InputB)
endfor
set_dict_object (InputB, Sample, 'input_b')
*
* Apply the model for summation and get results.
set_dl_model_param (DLModel, 'batch_size', 2)
apply_dl_model (DLModel, [Sample,Sample], [], Result)
get_dict_object (Sum, Result[0], 'sum')
get_dict_object (TupleInputA, Result[1], 'input_a')
create_dl_layer_activation,
create_dl_layer_batch_normalization,
create_dl_layer_class_id_conversion,
create_dl_layer_class_id_conversion,
create_dl_layer_concat,
create_dl_layer_convolution,
create_dl_layer_dense,
create_dl_layer_depth_max,
create_dl_layer_dropout,
create_dl_layer_elementwise,
create_dl_layer_loss_cross_entropy,
create_dl_layer_loss_ctc,
create_dl_layer_loss_distance,
create_dl_layer_loss_focal,
create_dl_layer_loss_huber,
create_dl_layer_lrn,
create_dl_layer_pooling,
create_dl_layer_reduce,
create_dl_layer_reshape,
create_dl_layer_softmax,
create_dl_layer_transposed_convolution,
create_dl_layer_zoom_factor,
create_dl_layer_zoom_size,
create_dl_layer_zoom_to_layer_size
Deep Learning Professional