Apache MXNet - Modulo API Python

L'API del modulo di Apache MXNet è come un modello FeedForward ed è più facile comporre simile al modulo Torch. Consiste delle seguenti classi:

BaseModule ([logger])

Rappresenta la classe base di un modulo. Un modulo può essere pensato come un componente di calcolo o una macchina di calcolo. Il compito di un modulo è eseguire passaggi avanti e indietro. Aggiorna anche i parametri in un modello.

Metodi

La tabella seguente mostra i metodi in cui consistevano BaseModule class-

Questo metodo otterrà gli stati da tutti i dispositivi
Metodi Definizione
indietro ([out_grads]) Come suggerisce il nome, questo metodo implementa il backward calcolo.
bind (data_shapes [, label_shapes,…]) Associa i simboli per costruire esecutori ed è necessario prima di poter eseguire calcoli con il modulo.
adatta (train_data [, eval_data, eval_metric,…]) Questo metodo addestra i parametri del modulo.
avanti (data_batch [, is_train]) Come suggerisce il nome, questo metodo implementa il calcolo Forward. Questo metodo supporta batch di dati con varie forme come diverse dimensioni di batch o diverse dimensioni di immagine.
forward_backward (data_batch) È una funzione comoda, come suggerisce il nome, che chiama sia in avanti che all'indietro.
get_input_grads ([merge_multi_context]) Questo metodo porterà i gradienti agli input che vengono calcolati nel precedente calcolo all'indietro.
get_outputs ([merge_multi_context]) Come suggerisce il nome, questo metodo otterrà gli output del precedente calcolo in avanti.
get_params () Ottiene i parametri, in particolare quelli che sono potenzialmente copie dei parametri effettivi utilizzati per eseguire il calcolo sul dispositivo.
get_states ([merge_multi_context])
init_optimizer ([kvstore, optimizer, ...]) Questo metodo installa e inizializza gli ottimizzatori. Inoltre si inizializzakvstore per distribuire la formazione.
init_params ([inizializzatore, arg_params, ...]) Come suggerisce il nome, questo metodo inizializzerà i parametri e gli stati ausiliari.
install_monitor (lun) Questo metodo installerà il monitor su tutti gli esecutori.
iter_predict (eval_data [, num_batch, reset, ...]) Questo metodo itererà sulle previsioni.
load_params (fname) Come specificato dal nome, caricherà i parametri del modello dal file.
predire (eval_data [, num_batch, ...]) Eseguirà la previsione e raccoglierà anche gli output.
preparare (data_batch [, sparse_row_id_fn]) L'operatore prepara il modulo per l'elaborazione di un dato batch di dati.
save_params (fname) Come specificato dal nome, questa funzione salverà i parametri del modello su file.
punteggio (eval_data, eval_metric [, num_batch,…]) Esegue la previsione eval_data e valuta anche le prestazioni in base al dato eval_metric.
set_params (arg_params, aux_params [,…]) Questo metodo assegnerà i valori del parametro e dello stato ausiliario.
set_states ([states, value]) Questo metodo, come suggerisce il nome, imposta il valore per gli stati.
aggiornare() Questo metodo aggiorna i parametri forniti in base all'ottimizzatore installato. Aggiorna anche i gradienti calcolati nel precedente batch avanti-indietro.
update_metric (eval_metric, etichette [, pre_sliced]) Questo metodo, come suggerisce il nome, valuta e accumula la metrica di valutazione sugli output dell'ultimo calcolo in avanti.
indietro ([out_grads]) Come suggerisce il nome, questo metodo implementa il backward calcolo.
bind (data_shapes [, label_shapes,…]) Imposta i bucket e collega l'esecutore per la chiave del bucket predefinita. Questo metodo rappresenta l'associazione per un fileBucketingModule.
avanti (data_batch [, is_train]) Come suggerisce il nome, questo metodo implementa il calcolo Forward. Questo metodo supporta batch di dati con varie forme come diverse dimensioni di batch o diverse dimensioni di immagine.
get_input_grads ([merge_multi_context]) Questo metodo porterà i gradienti agli input che sono calcolati nel precedente calcolo all'indietro.
get_outputs ([merge_multi_context]) Come suggerisce il nome, questo metodo otterrà gli output dal precedente calcolo in avanti.
get_params () Ottiene i parametri correnti, in particolare quelli che sono potenzialmente copie dei parametri effettivi utilizzati per eseguire il calcolo sul dispositivo.
get_states ([merge_multi_context]) Questo metodo otterrà gli stati da tutti i dispositivi.
init_optimizer ([kvstore, optimizer, ...]) Questo metodo installa e inizializza gli ottimizzatori. Inoltre si inizializzakvstore per distribuire la formazione.
init_params ([inizializzatore, arg_params, ...]) Come suggerisce il nome, questo metodo inizializzerà i parametri e gli stati ausiliari.
install_monitor (lun) Questo metodo installerà il monitor su tutti gli esecutori.
caricamento (prefisso, epoch [, sym_gen, ...]) Questo metodo creerà un modello dal checkpoint salvato in precedenza.
load_dict ([sym_dict, sym_gen,…]) Questo metodo creerà un modello da una mappatura del dizionario (dict) bucket_keyai simboli. Condivide anchearg_params e aux_params.
preparare (data_batch [, sparse_row_id_fn]) L'operatore prepara il modulo per l'elaborazione di un dato batch di dati.
save_checkpoint (prefix, epoch [, remove_amp_cast]) Questo metodo, come suggerisce il nome, salva lo stato di avanzamento corrente nel checkpoint per tutti i bucket in BucketingModule. Si consiglia di utilizzare mx.callback.module_checkpoint come epoch_end_callback per salvare durante l'addestramento.
set_params (arg_params, aux_params [,…]) Come specificato dal nome, questa funzione assegnerà parametri e valori di stato ausiliario.
set_states ([states, value]) Questo metodo, come suggerisce il nome, imposta il valore per gli stati.
switch_bucket (bucket_key, data_shapes [,…]) Passerà a un secchio diverso.
aggiornare() Questo metodo aggiorna i parametri forniti in base all'ottimizzatore installato. Aggiorna anche i gradienti calcolati nel precedente batch avanti-indietro.
update_metric (eval_metric, etichette [, pre_sliced]) Questo metodo, come suggerisce il nome, valuta e accumula la metrica di valutazione sugli output dell'ultimo calcolo in avanti.

Attributi

La tabella seguente mostra gli attributi consistenti nei metodi di BaseModule classe -

Attributi Definizione
data_names Consiste nella lista dei nomi per i dati richiesti da questo modulo.
data_shapes Consiste dell'elenco di coppie (nome, forma) che specificano i dati in ingresso a questo modulo.
label_shapes Mostra l'elenco delle coppie (nome, forma) che specificano gli input dell'etichetta per questo modulo.
output_names Consiste nella lista dei nomi per le uscite di questo modulo.
output_shapes Consiste nella lista delle coppie (nome, forma) che specificano gli output di questo modulo.
simbolo Come il nome specificato, questo attributo ottiene il simbolo associato a questo modulo.

data_shapes: puoi fare riferimento al link disponibile su https://mxnet.apache.orgper dettagli. output_shapes: Altro

output_shapes: ulteriori informazioni sono disponibili all'indirizzo https://mxnet.apache.org/api/python

BucketingModule (sym_gen […])

Rappresenta il Bucketingmodule classe di un modulo che aiuta a gestire in modo efficiente input di lunghezza variabile.

Metodi

La tabella seguente mostra i metodi in cui consistevano BucketingModule class -

Attributi

La tabella seguente mostra gli attributi consistenti nei metodi di BaseModule class -

Attributi Definizione
data_names Consiste nella lista dei nomi per i dati richiesti da questo modulo.
data_shapes Consiste dell'elenco di coppie (nome, forma) che specificano i dati in ingresso a questo modulo.
label_shapes Mostra l'elenco delle coppie (nome, forma) che specificano gli input dell'etichetta per questo modulo.
output_names Consiste nella lista dei nomi per le uscite di questo modulo.
output_shapes Consiste nella lista delle coppie (nome, forma) che specificano gli output di questo modulo.
Simbolo Come il nome specificato, questo attributo ottiene il simbolo associato a questo modulo.

data_shapes - Puoi fare riferimento al collegamento all'indirizzo https://mxnet.apache.org/api/python/docs per maggiori informazioni.

output_shapes - Puoi fare riferimento al collegamento a https://mxnet.apache.org/api/python/docs per maggiori informazioni.

Modulo (simbolo [, data_names, label_names, ...])

Rappresenta un modulo di base che avvolge un file symbol.

Metodi

La tabella seguente mostra i metodi in cui consistevano Module class -

Metodi Definizione
indietro ([out_grads]) Come suggerisce il nome, questo metodo implementa il backward calcolo.
bind (data_shapes [, label_shapes,…]) Associa i simboli per costruire esecutori ed è necessario prima di poter eseguire calcoli con il modulo.
prestito_optimizzatore (shared_module) Come suggerisce il nome, questo metodo prenderà in prestito l'ottimizzatore da un modulo condiviso.
avanti (data_batch [, is_train]) Come suggerisce il nome, questo metodo implementa il Forwardcalcolo. Questo metodo supporta batch di dati con varie forme come diverse dimensioni di batch o diverse dimensioni di immagine.
get_input_grads ([merge_multi_context]) Questo metodo porterà i gradienti agli input che vengono calcolati nel precedente calcolo all'indietro.
get_outputs ([merge_multi_context]) Come suggerisce il nome, questo metodo otterrà gli output del precedente calcolo in avanti.
get_params () Ottiene i parametri, in particolare quelli che sono potenzialmente copie dei parametri effettivi utilizzati per eseguire il calcolo sul dispositivo.
get_states ([merge_multi_context]) Questo metodo otterrà gli stati da tutti i dispositivi
init_optimizer ([kvstore, optimizer, ...]) Questo metodo installa e inizializza gli ottimizzatori. Inoltre si inizializzakvstore per distribuire la formazione.
init_params ([inizializzatore, arg_params, ...]) Come suggerisce il nome, questo metodo inizializzerà i parametri e gli stati ausiliari.
install_monitor (lun) Questo metodo installerà il monitor su tutti gli esecutori.
caricamento (prefisso, epoch [, sym_gen, ...]) Questo metodo creerà un modello dal checkpoint salvato in precedenza.
load_optimizer_states (fname) Questo metodo caricherà un ottimizzatore, ovvero lo stato del programma di aggiornamento da un file.
preparare (data_batch [, sparse_row_id_fn]) L'operatore prepara il modulo per l'elaborazione di un dato batch di dati.
rimodellare (data_shapes [, label_shapes]) Questo metodo, come suggerisce il nome, rimodella il modulo per nuove forme di input.
save_checkpoint (prefix, epoch [,…]) Salva lo stato di avanzamento corrente al checkpoint.
save_optimizer_states (fname) Questo metodo salva l'ottimizzatore o lo stato del programma di aggiornamento in un file.
set_params (arg_params, aux_params [,…]) Come specificato dal nome, questa funzione assegnerà parametri e valori di stato ausiliario.
set_states ([states, value]) Questo metodo, come suggerisce il nome, imposta il valore per gli stati.
aggiornare() Questo metodo aggiorna i parametri forniti in base all'ottimizzatore installato. Aggiorna anche i gradienti calcolati nel precedente batch avanti-indietro.
update_metric (eval_metric, etichette [, pre_sliced]) Questo metodo, come suggerisce il nome, valuta e accumula la metrica di valutazione sugli output dell'ultimo calcolo in avanti.

Attributi

La tabella seguente mostra gli attributi consistenti nei metodi di Module class -

Attributi Definizione
data_names Consiste nella lista dei nomi per i dati richiesti da questo modulo.
data_shapes Consiste dell'elenco di coppie (nome, forma) che specificano i dati in ingresso a questo modulo.
label_shapes Mostra l'elenco delle coppie (nome, forma) che specificano gli input dell'etichetta per questo modulo.
output_names Consiste nella lista dei nomi per le uscite di questo modulo.
output_shapes Consiste nella lista delle coppie (nome, forma) che specificano gli output di questo modulo.
label_names Consiste dell'elenco di nomi per le etichette richieste da questo modulo.

data_shapes: visita il link https://mxnet.apache.org/api/python/docs/api/module per ulteriori dettagli.

output_shapes: il collegamento fornito con la presente https://mxnet.apache.org/api/python/docs/api/module/index.html offrirà altre importanti informazioni.

PythonLossModule ([name, data_names, ...])

La base di questa classe è mxnet.module.python_module.PythonModule. La classe PythonLossModule è una comoda classe di moduli che implementa tutte o molte delle API del modulo come funzioni vuote.

Metodi

La tabella seguente mostra i metodi in cui consistevano PythonLossModule classe:

Metodi Definizione
indietro ([out_grads]) Come suggerisce il nome, questo metodo implementa il backward calcolo.
avanti (data_batch [, is_train]) Come suggerisce il nome, questo metodo implementa il Forwardcalcolo. Questo metodo supporta batch di dati con varie forme come diverse dimensioni di batch o diverse dimensioni di immagine.
get_input_grads ([merge_multi_context]) Questo metodo porterà i gradienti agli input che vengono calcolati nel precedente calcolo all'indietro.
get_outputs ([merge_multi_context]) Come suggerisce il nome, questo metodo otterrà gli output del precedente calcolo in avanti.
install_monitor (lun) Questo metodo installerà il monitor su tutti gli esecutori.

PythonModule ([data_names, label_names…])

La base di questa classe è mxnet.module.base_module.BaseModule. La classe PythonModule è anche una comoda classe di moduli che implementa tutte o molte delle API del modulo come funzioni vuote.

Metodi

La tabella seguente mostra i metodi in cui consistevano PythonModule classe -

Metodi Definizione
bind (data_shapes [, label_shapes,…]) Associa i simboli per costruire esecutori ed è necessario prima di poter eseguire calcoli con il modulo.
get_params () Ottiene i parametri, in particolare quelli che sono potenzialmente copie dei parametri effettivi utilizzati per eseguire il calcolo sul dispositivo.
init_optimizer ([kvstore, optimizer, ...]) Questo metodo installa e inizializza gli ottimizzatori. Inoltre si inizializzakvstore per distribuire la formazione.
init_params ([inizializzatore, arg_params, ...]) Come suggerisce il nome, questo metodo inizializzerà i parametri e gli stati ausiliari.
aggiornare() Questo metodo aggiorna i parametri forniti in base all'ottimizzatore installato. Aggiorna anche i gradienti calcolati nel precedente batch avanti-indietro.
update_metric (eval_metric, etichette [, pre_sliced]) Questo metodo, come suggerisce il nome, valuta e accumula la metrica di valutazione sugli output dell'ultimo calcolo in avanti.

Attributi

La tabella seguente mostra gli attributi consistenti nei metodi di PythonModule classe -

Attributi Definizione
data_names Consiste nella lista dei nomi per i dati richiesti da questo modulo.
data_shapes Consiste dell'elenco di coppie (nome, forma) che specificano i dati in ingresso a questo modulo.
label_shapes Mostra l'elenco delle coppie (nome, forma) che specificano gli input dell'etichetta per questo modulo.
output_names Consiste nella lista dei nomi per le uscite di questo modulo.
output_shapes Consiste nella lista delle coppie (nome, forma) che specificano gli output di questo modulo.

data_shapes - Segui il link https://mxnet.apache.org per dettagli.

output_shapes - Per ulteriori dettagli, visitare il collegamento disponibile all'indirizzo https://mxnet.apache.org

SequentialModule ([logger])

La base di questa classe è mxnet.module.base_module.BaseModule. La classe SequentialModule è anche un modulo contenitore che può concatenare più di due (multipli) moduli insieme.

Metodi

La tabella seguente mostra i metodi in cui consistevano SequentialModule classe

Metodi Definizione
aggiungi (modulo, ** kwargs) Questa è la funzione più importante di questa classe. Aggiunge un modulo alla catena.
indietro ([out_grads]) Come suggerisce il nome, questo metodo implementa il calcolo all'indietro.
bind (data_shapes [, label_shapes,…]) Associa i simboli per costruire esecutori ed è necessario prima di poter eseguire calcoli con il modulo.
avanti (data_batch [, is_train]) Come suggerisce il nome, questo metodo implementa il calcolo Forward. Questo metodo supporta batch di dati con varie forme come diverse dimensioni di batch o diverse dimensioni di immagine.
get_input_grads ([merge_multi_context]) Questo metodo porterà i gradienti agli input che vengono calcolati nel precedente calcolo all'indietro.
get_outputs ([merge_multi_context]) Come suggerisce il nome, questo metodo otterrà gli output del precedente calcolo in avanti.
get_params () Ottiene i parametri, in particolare quelli che sono potenzialmente copie dei parametri effettivi utilizzati per eseguire il calcolo sul dispositivo.
init_optimizer ([kvstore, optimizer, ...]) Questo metodo installa e inizializza gli ottimizzatori. Inoltre si inizializzakvstore per distribuire la formazione.
init_params ([inizializzatore, arg_params, ...]) Come suggerisce il nome, questo metodo inizializzerà i parametri e gli stati ausiliari.
install_monitor (lun) Questo metodo installerà il monitor su tutti gli esecutori.
aggiornare() Questo metodo aggiorna i parametri forniti in base all'ottimizzatore installato. Aggiorna anche i gradienti calcolati nel precedente batch avanti-indietro.
update_metric (eval_metric, etichette [, pre_sliced]) Questo metodo, come suggerisce il nome, valuta e accumula la metrica di valutazione sugli output dell'ultimo calcolo in avanti.

Attributi

La tabella seguente mostra gli attributi costituiti dai metodi della classe BaseModule -

Attributi Definizione
data_names Consiste nella lista dei nomi per i dati richiesti da questo modulo.
data_shapes Consiste dell'elenco di coppie (nome, forma) che specificano i dati in ingresso a questo modulo.
label_shapes Mostra l'elenco delle coppie (nome, forma) che specificano gli input dell'etichetta per questo modulo.
output_names Consiste nella lista dei nomi per le uscite di questo modulo.
output_shapes Consiste nella lista delle coppie (nome, forma) che specificano gli output di questo modulo.
output_shapes Consiste nella lista delle coppie (nome, forma) che specificano gli output di questo modulo.

data_shapes - Il link qui fornito https://mxnet.apache.org ti aiuterà a comprendere l'attributo in modo molto dettagliato.

output_shapes - Segui il link disponibile su https://mxnet.apache.org/api per dettagli.

Esempi di implementazione

Nell'esempio seguente, creeremo un file mxnet modulo.

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

L'output è menzionato di seguito:

<Symbol softmax>

Example

print(mod)

Output

L'output è mostrato di seguito:

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

In questo esempio di seguito, implementeremo il calcolo in avanti

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

Quando esegui il codice sopra, dovresti vedere il seguente output:

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

Di seguito è riportato l'output del codice:

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