Apache MXNet - Python-API-Modul

Die Modul-API von Apache MXNet ähnelt einem FeedForward-Modell und ist einfacher zu erstellen als das Torch-Modul. Es besteht aus folgenden Klassen -

BaseModule ([Logger])

Es repräsentiert die Basisklasse eines Moduls. Ein Modul kann als Rechenkomponente oder Rechenmaschine betrachtet werden. Die Aufgabe eines Moduls besteht darin, Vorwärts- und Rückwärtsdurchläufe auszuführen. Außerdem werden Parameter in einem Modell aktualisiert.

Methoden

Die folgende Tabelle zeigt die Methoden, aus denen besteht BaseModule class- -

Diese Methode ruft Zustände von allen Geräten ab
Methoden Definition
rückwärts ([out_grads]) Wie der Name schon sagt, implementiert diese Methode die backward Berechnung.
bind (data_shapes [, label_shapes,…]) Es bindet die Symbole, um Ausführende zu konstruieren, und es ist notwendig, bevor man mit dem Modul rechnen kann.
fit (train_data [, eval_data, eval_metric,…]) Diese Methode trainiert die Modulparameter.
vorwärts (data_batch [, is_train]) Wie der Name schon sagt, implementiert diese Methode die Vorwärtsberechnung. Diese Methode unterstützt Datenstapel mit verschiedenen Formen wie unterschiedlichen Stapelgrößen oder unterschiedlichen Bildgrößen.
forward_backward (data_batch) Es ist eine praktische Funktion, wie der Name schon sagt, die sowohl vorwärts als auch rückwärts aufruft.
get_input_grads ([merge_multi_context]) Diese Methode ruft die Gradienten zu den Eingaben ab, die in der vorherigen Rückwärtsberechnung berechnet wurden.
get_outputs ([merge_multi_context]) Wie der Name schon sagt, erhält diese Methode Ausgaben der vorherigen Vorwärtsberechnung.
get_params () Es werden die Parameter abgerufen, insbesondere diejenigen, die möglicherweise Kopien der tatsächlichen Parameter sind, die für die Berechnung auf dem Gerät verwendet werden.
get_states ([merge_multi_context])
init_optimizer ([kvstore, optimizer,…]) Diese Methode installiert und initialisiert die Optimierer. Es wird auch initialisiertkvstore zum Verteilen von Schulungen.
init_params ([initializer, arg_params,…]) Wie der Name schon sagt, initialisiert diese Methode die Parameter und Hilfszustände.
install_monitor (mon) Diese Methode installiert den Monitor auf allen Executoren.
iter_predict (eval_data [, num_batch, reset,…]) Diese Methode iteriert über Vorhersagen.
load_params (fname) Wie der Name schon sagt, werden Modellparameter aus der Datei geladen.
vorhersagen (eval_data [, num_batch,…]) Es wird die Vorhersage ausführen und auch die Ausgaben sammeln.
vorbereiten (data_batch [, sparse_row_id_fn]) Der Bediener bereitet das Modul für die Verarbeitung eines bestimmten Datenstapels vor.
save_params (fname) Wie der Name schon sagt, speichert diese Funktion die Modellparameter in einer Datei.
score (eval_data, eval_metric [, num_batch,…]) Es läuft die Vorhersage weiter eval_data und bewertet auch die Leistung gemäß den gegebenen eval_metric.
set_params (arg_params, aux_params [,…]) Diese Methode weist die Parameter- und Hilfszustandswerte zu.
set_states ([Zustände, Wert]) Diese Methode legt, wie der Name schon sagt, den Wert für Zustände fest.
aktualisieren() Diese Methode aktualisiert die angegebenen Parameter entsprechend dem installierten Optimierer. Außerdem werden die im vorherigen Vorwärts-Rückwärts-Stapel berechneten Farbverläufe aktualisiert.
update_metric (eval_metric, label [, pre_sliced]) Diese Methode wertet, wie der Name schon sagt, die Bewertungsmetrik für die Ausgaben der letzten Vorwärtsberechnung aus und akkumuliert sie.
rückwärts ([out_grads]) Wie der Name schon sagt, implementiert diese Methode die backward Berechnung.
bind (data_shapes [, label_shapes,…]) Es richtet die Buckets ein und bindet den Executor für den Standard-Bucket-Schlüssel. Diese Methode repräsentiert die Bindung für aBucketingModule.
vorwärts (data_batch [, is_train]) Wie der Name schon sagt, implementiert diese Methode die Vorwärtsberechnung. Diese Methode unterstützt Datenstapel mit verschiedenen Formen wie unterschiedlichen Stapelgrößen oder unterschiedlichen Bildgrößen.
get_input_grads ([merge_multi_context]) Diese Methode erhält die Gradienten zu den Eingaben, die in der vorherigen Rückwärtsberechnung berechnet wurden.
get_outputs ([merge_multi_context]) Wie der Name schon sagt, erhält diese Methode Ausgaben aus der vorherigen Vorwärtsberechnung.
get_params () Es werden die aktuellen Parameter abgerufen, insbesondere diejenigen, die möglicherweise Kopien der tatsächlichen Parameter sind, die für die Berechnung auf dem Gerät verwendet werden.
get_states ([merge_multi_context]) Diese Methode ruft Zustände von allen Geräten ab.
init_optimizer ([kvstore, optimizer,…]) Diese Methode installiert und initialisiert die Optimierer. Es wird auch initialisiertkvstore zum Verteilen von Schulungen.
init_params ([initializer, arg_params,…]) Wie der Name schon sagt, initialisiert diese Methode die Parameter und Hilfszustände.
install_monitor (mon) Diese Methode installiert den Monitor auf allen Executoren.
Laden (Präfix, Epoche [, sym_gen,…]) Diese Methode erstellt ein Modell aus dem zuvor gespeicherten Prüfpunkt.
load_dict ([sym_dict, sym_gen,…]) Diese Methode erstellt ein Modell aus einer Wörterbuchzuordnung (dikt) bucket_keyzu Symbolen. Es teilt aucharg_params und aux_params.
vorbereiten (data_batch [, sparse_row_id_fn]) Der Bediener bereitet das Modul für die Verarbeitung eines bestimmten Datenstapels vor.
save_checkpoint (Präfix, Epoche [, remove_amp_cast]) Diese Methode speichert, wie der Name schon sagt, den aktuellen Fortschritt für alle Buckets in BucketingModule am Prüfpunkt. Es wird empfohlen, mx.callback.module_checkpoint als epoch_end_callback zu verwenden, um während des Trainings zu speichern.
set_params (arg_params, aux_params [,…]) Wie der Name schon sagt, weist diese Funktion Parameter und Hilfszustandswerte zu.
set_states ([Zustände, Wert]) Diese Methode legt, wie der Name schon sagt, den Wert für Zustände fest.
switch_bucket (Bucket_key, Datenformen [,…]) Es wird in einen anderen Eimer umgeschaltet.
aktualisieren() Diese Methode aktualisiert die angegebenen Parameter entsprechend dem installierten Optimierer. Außerdem werden die im vorherigen Vorwärts-Rückwärts-Stapel berechneten Farbverläufe aktualisiert.
update_metric (eval_metric, label [, pre_sliced]) Diese Methode wertet, wie der Name schon sagt, die Bewertungsmetrik für die Ausgaben der letzten Vorwärtsberechnung aus und akkumuliert sie.

Attribute

Die folgende Tabelle zeigt die Attribute, die in den Methoden von bestehen BaseModule Klasse -

Attribute Definition
Datennamen Es besteht aus der Liste der Namen für Daten, die von diesem Modul benötigt werden.
Datenformen Es besteht aus der Liste von (Name, Form) Paaren, die die Dateneingaben für dieses Modul angeben.
label_shapes Es zeigt die Liste der (Name, Form) Paare, die die Beschriftungseingaben für dieses Modul angeben.
Ausgabenamen Es besteht aus der Liste der Namen für die Ausgänge dieses Moduls.
output_shapes Es besteht aus der Liste von (Name, Form) Paaren, die die Ausgänge dieses Moduls angeben.
Symbol Wie angegeben, erhält dieses Attribut das diesem Modul zugeordnete Symbol.

data_shapes: Sie können auf den Link verweisen, der unter verfügbar ist https://mxnet.apache.orgfür Details. output_shapes: Mehr

output_shapes: Weitere Informationen finden Sie unter https://mxnet.apache.org/api/python

BucketingModule (sym_gen […])

Es repräsentiert die Bucketingmodule Klasse eines Moduls, mit dessen Hilfe Eingaben unterschiedlicher Länge effizient verarbeitet werden können.

Methoden

Die folgende Tabelle zeigt die Methoden, aus denen besteht BucketingModule class - -

Attribute

Die folgende Tabelle zeigt die Attribute, die in den Methoden von bestehen BaseModule class - -

Attribute Definition
Datennamen Es besteht aus der Liste der Namen für Daten, die von diesem Modul benötigt werden.
Datenformen Es besteht aus der Liste von (Name, Form) Paaren, die die Dateneingaben für dieses Modul angeben.
label_shapes Es zeigt die Liste der (Name, Form) Paare, die die Beschriftungseingaben für dieses Modul angeben.
Ausgabenamen Es besteht aus der Liste der Namen für die Ausgänge dieses Moduls.
output_shapes Es besteht aus der Liste von (Name, Form) Paaren, die die Ausgänge dieses Moduls angeben.
Symbol Wie angegeben, erhält dieses Attribut das diesem Modul zugeordnete Symbol.

data_shapes - Sie können auf den Link unter verweisen https://mxnet.apache.org/api/python/docs für mehr Informationen.

output_shapes− Sie können auf den Link unter verweisen https://mxnet.apache.org/api/python/docs für mehr Informationen.

Modul (Symbol [, Datennamen, Labelnamen,…])

Es stellt ein Basismodul dar, das a umschließt symbol.

Methoden

Die folgende Tabelle zeigt die Methoden, aus denen besteht Module class - -

Methoden Definition
rückwärts ([out_grads]) Wie der Name schon sagt, implementiert diese Methode die backward Berechnung.
bind (data_shapes [, label_shapes,…]) Es bindet die Symbole, um Ausführende zu konstruieren, und es ist notwendig, bevor man mit dem Modul rechnen kann.
leihen_optimizer (shared_module) Wie der Name schon sagt, leiht diese Methode den Optimierer von einem gemeinsam genutzten Modul aus.
vorwärts (data_batch [, is_train]) Wie der Name schon sagt, implementiert diese Methode die ForwardBerechnung. Diese Methode unterstützt Datenstapel mit verschiedenen Formen wie unterschiedlichen Stapelgrößen oder unterschiedlichen Bildgrößen.
get_input_grads ([merge_multi_context]) Diese Methode ruft die Gradienten zu den Eingaben ab, die in der vorherigen Rückwärtsberechnung berechnet wurden.
get_outputs ([merge_multi_context]) Wie der Name schon sagt, erhält diese Methode Ausgaben der vorherigen Vorwärtsberechnung.
get_params () Es werden die Parameter abgerufen, insbesondere diejenigen, die möglicherweise Kopien der tatsächlichen Parameter sind, die für die Berechnung auf dem Gerät verwendet werden.
get_states ([merge_multi_context]) Diese Methode ruft Zustände von allen Geräten ab
init_optimizer ([kvstore, optimizer,…]) Diese Methode installiert und initialisiert die Optimierer. Es wird auch initialisiertkvstore zum Verteilen von Schulungen.
init_params ([initializer, arg_params,…]) Wie der Name schon sagt, initialisiert diese Methode die Parameter und Hilfszustände.
install_monitor (mon) Diese Methode installiert den Monitor auf allen Executoren.
Laden (Präfix, Epoche [, sym_gen,…]) Diese Methode erstellt ein Modell aus dem zuvor gespeicherten Prüfpunkt.
load_optimizer_states (fname) Diese Methode lädt einen Optimierer, dh den Updater-Status, aus einer Datei.
vorbereiten (data_batch [, sparse_row_id_fn]) Der Bediener bereitet das Modul für die Verarbeitung eines bestimmten Datenstapels vor.
umformen (data_shapes [, label_shapes]) Diese Methode formt, wie der Name schon sagt, das Modul für neue Eingabeformen um.
save_checkpoint (Präfix, Epoche [,…]) Es speichert den aktuellen Fortschritt zum Checkpoint.
save_optimizer_states (fname) Diese Methode speichert den Optimierer oder den Updater-Status in einer Datei.
set_params (arg_params, aux_params [,…]) Wie der Name schon sagt, weist diese Funktion Parameter und Hilfszustandswerte zu.
set_states ([Zustände, Wert]) Diese Methode legt, wie der Name schon sagt, den Wert für Zustände fest.
aktualisieren() Diese Methode aktualisiert die angegebenen Parameter entsprechend dem installierten Optimierer. Außerdem werden die im vorherigen Vorwärts-Rückwärts-Stapel berechneten Farbverläufe aktualisiert.
update_metric (eval_metric, label [, pre_sliced]) Diese Methode wertet, wie der Name schon sagt, die Bewertungsmetrik für die Ausgaben der letzten Vorwärtsberechnung aus und akkumuliert sie.

Attribute

Die folgende Tabelle zeigt die Attribute, die in den Methoden von bestehen Module class - -

Attribute Definition
Datennamen Es besteht aus der Liste der Namen für Daten, die von diesem Modul benötigt werden.
Datenformen Es besteht aus der Liste von (Name, Form) Paaren, die die Dateneingaben für dieses Modul angeben.
label_shapes Es zeigt die Liste der (Name, Form) Paare, die die Beschriftungseingaben für dieses Modul angeben.
Ausgabenamen Es besteht aus der Liste der Namen für die Ausgänge dieses Moduls.
output_shapes Es besteht aus der Liste von (Name, Form) Paaren, die die Ausgänge dieses Moduls angeben.
label_names Es besteht aus der Liste der Namen für Beschriftungen, die von diesem Modul benötigt werden.

data_shapes: Besuchen Sie den Link https://mxnet.apache.org/api/python/docs/api/module für weitere Details.

output_shapes: Der hiermit angegebene Link https://mxnet.apache.org/api/python/docs/api/module/index.html bietet weitere wichtige Informationen.

PythonLossModule ([Name, Datennamen,…])

Die Basis dieser Klasse ist mxnet.module.python_module.PythonModule. Die PythonLossModule-Klasse ist eine praktische Modulklasse, die alle oder viele Modul-APIs als leere Funktionen implementiert.

Methoden

Die folgende Tabelle zeigt die Methoden, aus denen besteht PythonLossModule Klasse:

Methoden Definition
rückwärts ([out_grads]) Wie der Name schon sagt, implementiert diese Methode die backward Berechnung.
vorwärts (data_batch [, is_train]) Wie der Name schon sagt, implementiert diese Methode die ForwardBerechnung. Diese Methode unterstützt Datenstapel mit verschiedenen Formen wie unterschiedlichen Stapelgrößen oder unterschiedlichen Bildgrößen.
get_input_grads ([merge_multi_context]) Diese Methode ruft die Gradienten zu den Eingaben ab, die in der vorherigen Rückwärtsberechnung berechnet wurden.
get_outputs ([merge_multi_context]) Wie der Name schon sagt, erhält diese Methode Ausgaben der vorherigen Vorwärtsberechnung.
install_monitor (mon) Diese Methode installiert den Monitor auf allen Executoren.

PythonModule ([Datennamen, Labelnamen…])

Die Basis dieser Klasse ist mxnet.module.base_module.BaseModule. Die PythonModule-Klasse ist auch eine praktische Modulklasse, die alle oder viele Modul-APIs als leere Funktionen implementiert.

Methoden

Die folgende Tabelle zeigt die Methoden, aus denen besteht PythonModule Klasse -

Methoden Definition
bind (data_shapes [, label_shapes,…]) Es bindet die Symbole, um Ausführende zu konstruieren, und es ist notwendig, bevor man mit dem Modul rechnen kann.
get_params () Es werden die Parameter abgerufen, insbesondere diejenigen, die möglicherweise Kopien der tatsächlichen Parameter sind, die für die Berechnung auf dem Gerät verwendet werden.
init_optimizer ([kvstore, optimizer,…]) Diese Methode installiert und initialisiert die Optimierer. Es wird auch initialisiertkvstore zum Verteilen von Schulungen.
init_params ([initializer, arg_params,…]) Wie der Name schon sagt, initialisiert diese Methode die Parameter und Hilfszustände.
aktualisieren() Diese Methode aktualisiert die angegebenen Parameter entsprechend dem installierten Optimierer. Außerdem werden die im vorherigen Vorwärts-Rückwärts-Stapel berechneten Farbverläufe aktualisiert.
update_metric (eval_metric, label [, pre_sliced]) Diese Methode wertet, wie der Name schon sagt, die Bewertungsmetrik für die Ausgaben der letzten Vorwärtsberechnung aus und akkumuliert sie.

Attribute

Die folgende Tabelle zeigt die Attribute, die in den Methoden von bestehen PythonModule Klasse -

Attribute Definition
Datennamen Es besteht aus der Liste der Namen für Daten, die von diesem Modul benötigt werden.
Datenformen Es besteht aus der Liste von (Name, Form) Paaren, die die Dateneingaben für dieses Modul angeben.
label_shapes Es zeigt die Liste der (Name, Form) Paare, die die Beschriftungseingaben für dieses Modul angeben.
Ausgabenamen Es besteht aus der Liste der Namen für die Ausgänge dieses Moduls.
output_shapes Es besteht aus der Liste von (Name, Form) Paaren, die die Ausgänge dieses Moduls angeben.

data_shapes - Folgen Sie dem Link https://mxnet.apache.org für Details.

output_shapes - Weitere Informationen finden Sie unter dem Link unter https://mxnet.apache.org

SequentialModule ([Logger])

Die Basis dieser Klasse ist mxnet.module.base_module.BaseModule. Die SequentialModule-Klasse ist auch ein Containermodul, das mehr als zwei (mehrere) Module miteinander verketten kann.

Methoden

Die folgende Tabelle zeigt die Methoden, aus denen besteht SequentialModule Klasse

Methoden Definition
add (Modul, ** kwargs) Dies ist die wichtigste Funktion dieser Klasse. Es fügt der Kette ein Modul hinzu.
rückwärts ([out_grads]) Wie der Name schon sagt, implementiert diese Methode die Rückwärtsberechnung.
bind (data_shapes [, label_shapes,…]) Es bindet die Symbole, um Ausführende zu konstruieren, und es ist notwendig, bevor man mit dem Modul rechnen kann.
vorwärts (data_batch [, is_train]) Wie der Name schon sagt, implementiert diese Methode die Vorwärtsberechnung. Diese Methode unterstützt Datenstapel mit verschiedenen Formen wie unterschiedlichen Stapelgrößen oder unterschiedlichen Bildgrößen.
get_input_grads ([merge_multi_context]) Diese Methode ruft die Gradienten zu den Eingaben ab, die in der vorherigen Rückwärtsberechnung berechnet wurden.
get_outputs ([merge_multi_context]) Wie der Name schon sagt, erhält diese Methode Ausgaben der vorherigen Vorwärtsberechnung.
get_params () Es werden die Parameter abgerufen, insbesondere diejenigen, die möglicherweise Kopien der tatsächlichen Parameter sind, die für die Berechnung auf dem Gerät verwendet werden.
init_optimizer ([kvstore, optimizer,…]) Diese Methode installiert und initialisiert die Optimierer. Es wird auch initialisiertkvstore zum Verteilen von Schulungen.
init_params ([initializer, arg_params,…]) Wie der Name schon sagt, initialisiert diese Methode die Parameter und Hilfszustände.
install_monitor (mon) Diese Methode installiert den Monitor auf allen Executoren.
aktualisieren() Diese Methode aktualisiert die angegebenen Parameter entsprechend dem installierten Optimierer. Außerdem werden die im vorherigen Vorwärts-Rückwärts-Stapel berechneten Farbverläufe aktualisiert.
update_metric (eval_metric, label [, pre_sliced]) Diese Methode wertet, wie der Name schon sagt, die Bewertungsmetrik für die Ausgaben der letzten Vorwärtsberechnung aus und akkumuliert sie.

Attribute

Die folgende Tabelle zeigt die Attribute, die in den Methoden der BaseModule-Klasse enthalten sind -

Attribute Definition
Datennamen Es besteht aus der Liste der Namen für Daten, die von diesem Modul benötigt werden.
Datenformen Es besteht aus der Liste von (Name, Form) Paaren, die die Dateneingaben für dieses Modul angeben.
label_shapes Es zeigt die Liste der (Name, Form) Paare, die die Beschriftungseingaben für dieses Modul angeben.
Ausgabenamen Es besteht aus der Liste der Namen für die Ausgänge dieses Moduls.
output_shapes Es besteht aus der Liste von (Name, Form) Paaren, die die Ausgänge dieses Moduls angeben.
output_shapes Es besteht aus der Liste von (Name, Form) Paaren, die die Ausgänge dieses Moduls angeben.

data_shapes - Der hier angegebene Link https://mxnet.apache.org wird Ihnen helfen, das Attribut im Detail zu verstehen.

output_shapes - Folgen Sie dem Link unter https://mxnet.apache.org/api für Details.

Implementierungsbeispiele

Im folgenden Beispiel erstellen wir eine mxnet Modul.

import mxnet as mx
input_data = mx.symbol.Variable('input_data')
f_connected1 = mx.symbol.FullyConnected(data, name='f_connected1', num_hidden=128)
activation_1 = mx.symbol.Activation(f_connected1, name='relu1', act_type="relu")
f_connected2 = mx.symbol.FullyConnected(activation_1, name = 'f_connected2', num_hidden = 64)
activation_2 = mx.symbol.Activation(f_connected2, name='relu2',
act_type="relu")
f_connected3 = mx.symbol.FullyConnected(activation_2, name='fc3', num_hidden=10)
out = mx.symbol.SoftmaxOutput(f_connected3, name = 'softmax')
mod = mx.mod.Module(out)
print(out)

Output

Die Ausgabe wird unten erwähnt -

<Symbol softmax>

Example

print(mod)

Output

Die Ausgabe wird unten gezeigt -

<mxnet.module.module.Module object at 0x00000123A9892F28>

In diesem Beispiel unten implementieren wir die Vorwärtsberechnung

import mxnet as mx
from collections import namedtuple
Batch = namedtuple('Batch', ['data'])
data = mx.sym.Variable('data')
out = data * 2
mod = mx.mod.Module(symbol=out, label_names=None)
mod.bind(data_shapes=[('data', (1, 10))])
mod.init_params()
data1 = [mx.nd.ones((1, 10))]
mod.forward(Batch(data1))
print (mod.get_outputs()[0].asnumpy())

Output

Wenn Sie den obigen Code ausführen, sollte die folgende Ausgabe angezeigt werden:

[[2. 2. 2. 2. 2. 2. 2. 2. 2. 2.]]

Example

data2 = [mx.nd.ones((3, 5))]

mod.forward(Batch(data2))
print (mod.get_outputs()[0].asnumpy())

Output

Unten ist die Ausgabe des Codes angegeben -

[[2. 2. 2. 2. 2.]
[2. 2. 2. 2. 2.]
[2. 2. 2. 2. 2.]]