Apache MXNet - Module d'API Python

L'API du module d'Apache MXNet est comme un modèle FeedForward et il est plus facile de composer comme le module Torch. Il se compose des classes suivantes -

BaseModule ([enregistreur])

Il représente la classe de base d'un module. Un module peut être considéré comme un composant de calcul ou une machine de calcul. Le travail d'un module est d'exécuter des passes avant et arrière. Il met également à jour les paramètres d'un modèle.

Méthodes

Le tableau suivant montre les méthodes consistant en BaseModule class-

Cette méthode obtiendra les états de tous les appareils
Méthodes Définition
en arrière ([out_grads]) Comme son nom l'indique, cette méthode implémente le backward calcul.
bind (data_shapes [, label_shapes,…]) Il lie les symboles pour construire des exécuteurs et c'est nécessaire avant de pouvoir effectuer le calcul avec le module.
fit (train_data [, eval_data, eval_metric,…]) Cette méthode entraîne les paramètres du module.
forward (data_batch [, is_train]) Comme son nom l'indique, cette méthode implémente le calcul Forward. Cette méthode prend en charge les lots de données avec différentes formes telles que différentes tailles de lots ou différentes tailles d'image.
forward_backward (data_batch) C'est une fonction pratique, comme son nom l'indique, qui appelle à la fois en avant et en arrière.
get_input_grads ([merge_multi_context]) Cette méthode obtient les gradients vers les entrées qui sont calculées dans le précédent calcul en arrière.
get_outputs ([merge_multi_context]) Comme son nom l'indique, cette méthode obtiendra les sorties du calcul direct précédent.
get_params () Il obtient les paramètres, en particulier ceux qui sont potentiellement des copies des paramètres réels utilisés pour faire le calcul sur l'appareil.
get_states ([merge_multi_context])
init_optimizer ([kvstore, optimizer,…]) Cette méthode installe et initialise les optimiseurs. Il initialise égalementkvstore pour distribuer la formation.
init_params ([initialiseur, arg_params,…]) Comme son nom l'indique, cette méthode initialisera les paramètres et les états auxiliaires.
install_monitor (mon) Cette méthode installera le moniteur sur tous les exécuteurs.
iter_predict (eval_data [, num_batch, reset,…]) Cette méthode itérera sur les prédictions.
load_params (fname) Comme son nom l'indique, il chargera les paramètres du modèle à partir du fichier.
prédire (eval_data [, num_batch,…]) Il exécutera la prédiction et collectera également les sorties.
préparer (data_batch [, sparse_row_id_fn]) L'opérateur prépare le module pour traiter un lot de données donné.
save_params (fname) Comme son nom l'indique, cette fonction enregistrera les paramètres du modèle dans un fichier.
score (eval_data, eval_metric [, num_batch,…]) Il exécute la prédiction sur eval_data et évalue également les performances en fonction du eval_metric.
set_params (arg_params, aux_params [,…]) Cette méthode attribuera les valeurs de paramètre et d'état aux.
set_states ([états, valeur]) Cette méthode, comme son nom l'indique, définit la valeur des états.
mise à jour() Cette méthode met à jour les paramètres donnés en fonction de l'optimiseur installé. Il met également à jour les dégradés calculés dans le précédent lot avant-arrière.
update_metric (eval_metric, labels [, pre_sliced]) Cette méthode, comme son nom l'indique, évalue et accumule la métrique d'évaluation sur les sorties du dernier calcul direct.
en arrière ([out_grads]) Comme son nom l'indique, cette méthode implémente le backward calcul.
bind (data_shapes [, label_shapes,…]) Il configure les compartiments et lie l'exécuteur à la clé de compartiment par défaut. Cette méthode représente la liaison pour unBucketingModule.
forward (data_batch [, is_train]) Comme son nom l'indique, cette méthode implémente le calcul Forward. Cette méthode prend en charge les lots de données avec différentes formes telles que différentes tailles de lots ou différentes tailles d'image.
get_input_grads ([merge_multi_context]) Cette méthode obtiendra les gradients vers les entrées qui sont calculées dans le calcul inverse précédent.
get_outputs ([merge_multi_context]) Comme son nom l'indique, cette méthode obtiendra les sorties du calcul direct précédent.
get_params () Il obtient les paramètres actuels, en particulier ceux qui sont potentiellement des copies des paramètres réels utilisés pour faire le calcul sur l'appareil.
get_states ([merge_multi_context]) Cette méthode obtiendra les états de tous les appareils.
init_optimizer ([kvstore, optimizer,…]) Cette méthode installe et initialise les optimiseurs. Il initialise égalementkvstore pour distribuer la formation.
init_params ([initialiseur, arg_params,…]) Comme son nom l'indique, cette méthode initialisera les paramètres et les états auxiliaires.
install_monitor (mon) Cette méthode installera le moniteur sur tous les exécuteurs.
load (préfixe, epoch [, sym_gen,…]) Cette méthode créera un modèle à partir du point de contrôle précédemment enregistré.
load_dict ([sym_dict, sym_gen,…]) Cette méthode créera un modèle à partir d'un mappage de dictionnaire (dict) bucket_keyaux symboles. Il partage égalementarg_params et aux_params.
préparer (data_batch [, sparse_row_id_fn]) L'opérateur prépare le module pour traiter un lot de données donné.
save_checkpoint (préfixe, époque [, remove_amp_cast]) Cette méthode, comme son nom l'indique, enregistre la progression actuelle au point de contrôle pour tous les buckets de BucketingModule. Il est recommandé d'utiliser mx.callback.module_checkpoint comme epoch_end_callback pour enregistrer pendant l'entraînement.
set_params (arg_params, aux_params [,…]) Comme son nom l'indique, cette fonction attribuera des paramètres et des valeurs d'état aux.
set_states ([états, valeur]) Cette méthode, comme son nom l'indique, définit la valeur des états.
switch_bucket (bucket_key, data_shapes [,…]) Il basculera vers un seau différent.
mise à jour() Cette méthode met à jour les paramètres donnés en fonction de l'optimiseur installé. Il met également à jour les dégradés calculés dans le précédent lot avant-arrière.
update_metric (eval_metric, labels [, pre_sliced]) Cette méthode, comme son nom l'indique, évalue et accumule la métrique d'évaluation sur les sorties du dernier calcul direct.

Les attributs

Le tableau suivant montre les attributs constitués par les méthodes de BaseModule classe -

Les attributs Définition
data_names Il se compose de la liste des noms des données requises par ce module.
data_shapes Il se compose de la liste des paires (nom, forme) spécifiant les entrées de données dans ce module.
label_shapes Il montre la liste des paires (nom, forme) spécifiant les entrées d'étiquette de ce module.
noms_sortie Il se compose de la liste des noms des sorties de ce module.
output_shapes Il se compose de la liste des paires (nom, forme) spécifiant les sorties de ce module.
symbole Comme son nom est spécifié, cet attribut obtient le symbole associé à ce module.

data_shapes: Vous pouvez consulter le lien disponible sur https://mxnet.apache.orgpour plus de détails. output_shapes: Plus

output_shapes: plus d'informations sont disponibles sur https://mxnet.apache.org/api/python

BucketingModule (sym_gen […])

Il représente le Bucketingmodule classe d'un module qui permet de traiter efficacement des entrées de longueur variable.

Méthodes

Le tableau suivant montre les méthodes consistant en BucketingModule class -

Les attributs

Le tableau suivant montre les attributs constitués par les méthodes de BaseModule class -

Les attributs Définition
data_names Il se compose de la liste des noms des données requises par ce module.
data_shapes Il se compose de la liste des paires (nom, forme) spécifiant les entrées de données dans ce module.
label_shapes Il montre la liste des paires (nom, forme) spécifiant les entrées d'étiquette de ce module.
noms_sortie Il se compose de la liste des noms des sorties de ce module.
output_shapes Il se compose de la liste des paires (nom, forme) spécifiant les sorties de ce module.
symbole Comme son nom est spécifié, cet attribut obtient le symbole associé à ce module.

data_shapes - Vous pouvez consulter le lien à https://mxnet.apache.org/api/python/docs pour plus d'informations.

output_shapes− Vous pouvez consulter le lien à https://mxnet.apache.org/api/python/docs pour plus d'informations.

Module (symbole [, data_names, label_names,…])

Il représente un module de base qui encapsule un symbol.

Méthodes

Le tableau suivant montre les méthodes consistant en Module class -

Méthodes Définition
en arrière ([out_grads]) Comme son nom l'indique, cette méthode implémente le backward calcul.
bind (data_shapes [, label_shapes,…]) Il lie les symboles pour construire des exécuteurs et c'est nécessaire avant de pouvoir effectuer le calcul avec le module.
emprunt_optimiseur (module_partagé) Comme son nom l'indique, cette méthode empruntera l'optimiseur à un module partagé.
forward (data_batch [, is_train]) Comme son nom l'indique, cette méthode implémente le Forwardcalcul. Cette méthode prend en charge les lots de données avec différentes formes telles que différentes tailles de lots ou différentes tailles d'image.
get_input_grads ([merge_multi_context]) Cette méthode obtient les gradients vers les entrées qui sont calculées dans le précédent calcul en arrière.
get_outputs ([merge_multi_context]) Comme son nom l'indique, cette méthode obtiendra les sorties du calcul direct précédent.
get_params () Il obtient les paramètres, en particulier ceux qui sont potentiellement des copies des paramètres réels utilisés pour faire le calcul sur l'appareil.
get_states ([merge_multi_context]) Cette méthode obtiendra les états de tous les appareils
init_optimizer ([kvstore, optimizer,…]) Cette méthode installe et initialise les optimiseurs. Il initialise égalementkvstore pour distribuer la formation.
init_params ([initialiseur, arg_params,…]) Comme son nom l'indique, cette méthode initialisera les paramètres et les états auxiliaires.
install_monitor (mon) Cette méthode installera le moniteur sur tous les exécuteurs.
load (préfixe, epoch [, sym_gen,…]) Cette méthode créera un modèle à partir du point de contrôle précédemment enregistré.
load_optimizer_states (fname) Cette méthode chargera un optimiseur, c'est-à-dire l'état du programme de mise à jour à partir d'un fichier.
préparer (data_batch [, sparse_row_id_fn]) L'opérateur prépare le module pour traiter un lot de données donné.
remodeler (formes_données [, formes_étiquette]) Cette méthode, comme son nom l'indique, remodèle le module pour de nouvelles formes d'entrée.
save_checkpoint (préfixe, époque [,…]) Il enregistre la progression actuelle au point de contrôle.
save_optimizer_states (fname) Cette méthode enregistre l'optimiseur ou l'état du programme de mise à jour dans un fichier.
set_params (arg_params, aux_params [,…]) Comme son nom l'indique, cette fonction attribuera des paramètres et des valeurs d'état aux.
set_states ([états, valeur]) Cette méthode, comme son nom l'indique, définit la valeur des états.
mise à jour() Cette méthode met à jour les paramètres donnés en fonction de l'optimiseur installé. Il met également à jour les dégradés calculés dans le précédent lot avant-arrière.
update_metric (eval_metric, labels [, pre_sliced]) Cette méthode, comme son nom l'indique, évalue et accumule la métrique d'évaluation sur les sorties du dernier calcul direct.

Les attributs

Le tableau suivant montre les attributs constitués par les méthodes de Module class -

Les attributs Définition
data_names Il se compose de la liste des noms des données requises par ce module.
data_shapes Il se compose de la liste des paires (nom, forme) spécifiant les entrées de données dans ce module.
label_shapes Il montre la liste des paires (nom, forme) spécifiant les entrées d'étiquette de ce module.
noms_sortie Il se compose de la liste des noms des sorties de ce module.
output_shapes Il se compose de la liste des paires (nom, forme) spécifiant les sorties de ce module.
label_names Il se compose de la liste des noms d'étiquettes requises par ce module.

data_shapes: visitez le lien https://mxnet.apache.org/api/python/docs/api/module pour plus de détails.

output_shapes: Le lien donné ci-joint https://mxnet.apache.org/api/python/docs/api/module/index.html offrira d'autres informations importantes.

PythonLossModule ([nom, noms_données,…])

La base de cette classe est mxnet.module.python_module.PythonModule. La classe PythonLossModule est une classe de module pratique qui implémente la totalité ou la plupart des API de module en tant que fonctions vides.

Méthodes

Le tableau suivant montre les méthodes consistant en PythonLossModule classe:

Méthodes Définition
en arrière ([out_grads]) Comme son nom l'indique, cette méthode implémente le backward calcul.
forward (data_batch [, is_train]) Comme son nom l'indique, cette méthode implémente le Forwardcalcul. Cette méthode prend en charge les lots de données avec différentes formes telles que différentes tailles de lots ou différentes tailles d'image.
get_input_grads ([merge_multi_context]) Cette méthode obtient les gradients vers les entrées qui sont calculées dans le précédent calcul en arrière.
get_outputs ([merge_multi_context]) Comme son nom l'indique, cette méthode obtiendra les sorties du calcul direct précédent.
install_monitor (mon) Cette méthode installera le moniteur sur tous les exécuteurs.

PythonModule ([noms_données, noms_étiquette…])

La base de cette classe est mxnet.module.base_module.BaseModule. La classe PythonModule est également une classe de module pratique qui implémente la totalité ou la plupart des API de module en tant que fonctions vides.

Méthodes

Le tableau suivant montre les méthodes consistant en PythonModule classe -

Méthodes Définition
bind (data_shapes [, label_shapes,…]) Il lie les symboles pour construire des exécuteurs et c'est nécessaire avant de pouvoir effectuer le calcul avec le module.
get_params () Il obtient les paramètres, en particulier ceux qui sont potentiellement des copies des paramètres réels utilisés pour faire le calcul sur l'appareil.
init_optimizer ([kvstore, optimizer,…]) Cette méthode installe et initialise les optimiseurs. Il initialise égalementkvstore pour distribuer la formation.
init_params ([initialiseur, arg_params,…]) Comme son nom l'indique, cette méthode initialisera les paramètres et les états auxiliaires.
mise à jour() Cette méthode met à jour les paramètres donnés en fonction de l'optimiseur installé. Il met également à jour les dégradés calculés dans le précédent lot avant-arrière.
update_metric (eval_metric, labels [, pre_sliced]) Cette méthode, comme son nom l'indique, évalue et accumule la métrique d'évaluation sur les sorties du dernier calcul direct.

Les attributs

Le tableau suivant montre les attributs constitués par les méthodes de PythonModule classe -

Les attributs Définition
data_names Il se compose de la liste des noms des données requises par ce module.
data_shapes Il se compose de la liste des paires (nom, forme) spécifiant les entrées de données dans ce module.
label_shapes Il montre la liste des paires (nom, forme) spécifiant les entrées d'étiquette de ce module.
noms_sortie Il se compose de la liste des noms des sorties de ce module.
output_shapes Il se compose de la liste des paires (nom, forme) spécifiant les sorties de ce module.

data_shapes - Suivez le lien https://mxnet.apache.org pour plus de détails.

output_shapes - Pour plus de détails, visitez le lien disponible sur https://mxnet.apache.org

SequentialModule ([enregistreur])

La base de cette classe est mxnet.module.base_module.BaseModule. La classe SequentialModule est également un module conteneur qui peut enchaîner plus de deux (plusieurs) modules ensemble.

Méthodes

Le tableau suivant montre les méthodes consistant en SequentialModule classe

Méthodes Définition
ajouter (module, ** kwargs) C'est la fonction la plus importante de cette classe. Il ajoute un module à la chaîne.
en arrière ([out_grads]) Comme son nom l'indique, cette méthode implémente le calcul en arrière.
bind (data_shapes [, label_shapes,…]) Il lie les symboles pour construire des exécuteurs et c'est nécessaire avant de pouvoir effectuer le calcul avec le module.
forward (data_batch [, is_train]) Comme son nom l'indique, cette méthode implémente le calcul Forward. Cette méthode prend en charge les lots de données avec différentes formes telles que différentes tailles de lots ou différentes tailles d'image.
get_input_grads ([merge_multi_context]) Cette méthode obtient les gradients vers les entrées qui sont calculées dans le précédent calcul en arrière.
get_outputs ([merge_multi_context]) Comme son nom l'indique, cette méthode obtiendra les sorties du calcul direct précédent.
get_params () Il obtient les paramètres, en particulier ceux qui sont potentiellement des copies des paramètres réels utilisés pour faire le calcul sur l'appareil.
init_optimizer ([kvstore, optimizer,…]) Cette méthode installe et initialise les optimiseurs. Il initialise égalementkvstore pour distribuer la formation.
init_params ([initialiseur, arg_params,…]) Comme son nom l'indique, cette méthode initialisera les paramètres et les états auxiliaires.
install_monitor (mon) Cette méthode installera le moniteur sur tous les exécuteurs.
mise à jour() Cette méthode met à jour les paramètres donnés en fonction de l'optimiseur installé. Il met également à jour les dégradés calculés dans le précédent lot avant-arrière.
update_metric (eval_metric, labels [, pre_sliced]) Cette méthode, comme son nom l'indique, évalue et accumule la métrique d'évaluation sur les sorties du dernier calcul direct.

Les attributs

Le tableau suivant montre les attributs constitués dans les méthodes de la classe BaseModule -

Les attributs Définition
data_names Il se compose de la liste des noms des données requises par ce module.
data_shapes Il se compose de la liste des paires (nom, forme) spécifiant les entrées de données dans ce module.
label_shapes Il montre la liste des paires (nom, forme) spécifiant les entrées d'étiquette de ce module.
noms_sortie Il se compose de la liste des noms des sorties de ce module.
output_shapes Il se compose de la liste des paires (nom, forme) spécifiant les sorties de ce module.
output_shapes Il se compose de la liste des paires (nom, forme) spécifiant les sorties de ce module.

data_shapes - Le lien ci-joint https://mxnet.apache.org vous aidera à comprendre l'attribut en détail.

output_shapes - Suivez le lien disponible sur https://mxnet.apache.org/api pour plus de détails.

Exemples de mise en œuvre

Dans l'exemple ci-dessous, nous allons créer un mxnet module.

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

La sortie est mentionnée ci-dessous -

<Symbol softmax>

Example

print(mod)

Output

La sortie est indiquée ci-dessous -

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

Dans cet exemple ci-dessous, nous allons implémenter le calcul direct

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

Lorsque vous exécutez le code ci-dessus, vous devriez voir la sortie suivante -

[[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

Ci-dessous est la sortie du code -

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