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 abMethoden | 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.]]