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