Apache MXNet - moduł API Pythona

Interfejs API modułu Apache MXNet jest podobny do modelu FeedForward i łatwiej jest komponować podobnie do modułu Torch. Składa się z następujących zajęć -

BaseModule ([rejestrator])

Reprezentuje klasę bazową modułu. Moduł można traktować jako komponent obliczeniowy lub maszynę obliczeniową. Zadaniem modułu jest wykonywanie przejść do przodu i do tyłu. Aktualizuje również parametry w modelu.

Metody

Poniższa tabela przedstawia stosowane metody BaseModule class-

Ta metoda pobierze stany ze wszystkich urządzeń
Metody Definicja
backward ([out_grads]) Jak nazwa wskazuje, ta metoda implementuje backward obliczenie.
bind (data_shapes [, label_shapes,…]) Wiąże symbole do konstruowania wykonawców i jest konieczne, zanim będzie można wykonać obliczenia z modułem.
fit (train_data [, eval_data, eval_metric,…]) Ta metoda szkoli parametry modułu.
forward (data_batch [, is_train]) Jak nazwa wskazuje, ta metoda implementuje obliczenia Forward. Ta metoda obsługuje partie danych o różnych kształtach, takich jak różne rozmiary partii lub różne rozmiary obrazów.
forward_backward (data_batch) Jest to wygodna funkcja, jak sama nazwa wskazuje, która wywołuje zarówno naprzód, jak i wstecz.
get_input_grads ([merge_multi_context]) Ta metoda pobierze gradienty do danych wejściowych, które są obliczane w poprzednim obliczeniu wstecznym.
get_outputs ([merge_multi_context]) Jak sama nazwa wskazuje, ta metoda pobierze dane wyjściowe z poprzednich obliczeń do przodu.
get_params () Pobiera parametry, zwłaszcza te, które są potencjalnie kopiami rzeczywistych parametrów używanych do obliczeń na urządzeniu.
get_states ([merge_multi_context])
init_optimizer ([kvstore, optimizer,…]) Ta metoda instaluje i inicjalizuje optymalizatory. Inicjuje się równieżkvstore do dystrybucji szkolenia.
init_params ([inicjator, arg_params,…]) Jak sama nazwa wskazuje, ta metoda zainicjuje parametry i stany pomocnicze.
install_monitor (pon.) Ta metoda zainstaluje monitor na wszystkich modułach wykonawczych.
iter_predict (eval_data [, num_batch, reset,…]) Ta metoda będzie iterować po prognozach.
load_params (fname) Zgodnie z nazwą załaduje parametry modelu z pliku.
przewidzieć (eval_data [, num_batch,…]) Uruchomi prognozowanie i zbierze również dane wyjściowe.
przygotuj (data_batch [, sparse_row_id_fn]) Operator przygotowuje moduł do przetwarzania zadanej paczki danych.
save_params (fname) Jak nazwa wskazuje, funkcja ta zapisze parametry modelu do pliku.
wynik (eval_data, eval_metric [, num_batch,…]) Uruchamia prognozę eval_data a także ocenia wydajność zgodnie z podanymi eval_metric.
set_params (arg_params, aux_params [,…]) Ta metoda przypisuje wartości parametrów i stanu pomocniczego.
set_states ([stany, wartość]) Ta metoda, jak sama nazwa wskazuje, ustawia wartości dla stanów.
aktualizacja() Ta metoda aktualizuje podane parametry zgodnie z zainstalowanym optymalizatorem. Aktualizuje również gradienty obliczone w poprzedniej partii do przodu i do tyłu.
update_metric (eval_metric, labels [, pre_sliced]) Ta metoda, jak sama nazwa wskazuje, ocenia i gromadzi metrykę oceny wyników ostatniego obliczenia w przód.
backward ([out_grads]) Jak nazwa wskazuje, ta metoda implementuje backward obliczenie.
bind (data_shapes [, label_shapes,…]) Konfiguruje zasobniki i wiąże moduł wykonawczy z domyślnym kluczem zasobnika. Ta metoda reprezentuje powiązanie dlaBucketingModule.
forward (data_batch [, is_train]) Jak nazwa wskazuje, ta metoda implementuje obliczenia Forward. Ta metoda obsługuje partie danych o różnych kształtach, takich jak różne rozmiary partii lub różne rozmiary obrazów.
get_input_grads ([merge_multi_context]) Ta metoda dostarczy gradienty do danych wejściowych, które są obliczane w poprzednim obliczeniu wstecznym.
get_outputs ([merge_multi_context]) Jak sama nazwa wskazuje, ta metoda otrzyma dane wyjściowe z poprzednich obliczeń do przodu.
get_params () Pobiera bieżące parametry, szczególnie te, które są potencjalnie kopiami rzeczywistych parametrów używanych do obliczeń na urządzeniu.
get_states ([merge_multi_context]) Ta metoda pobierze stany ze wszystkich urządzeń.
init_optimizer ([kvstore, optimizer,…]) Ta metoda instaluje i inicjalizuje optymalizatory. Inicjuje się równieżkvstore do dystrybucji szkolenia.
init_params ([inicjator, arg_params,…]) Jak sama nazwa wskazuje, ta metoda zainicjuje parametry i stany pomocnicze.
install_monitor (pon.) Ta metoda zainstaluje monitor na wszystkich modułach wykonawczych.
load (prefiks, epoch [, sym_gen,…]) Ta metoda stworzy model z wcześniej zapisanego punktu kontrolnego.
load_dict ([sym_dict, sym_gen,…]) Ta metoda utworzy model z odwzorowania słownikowego (dict) bucket_keydo symboli. Udostępnia równieżarg_params i aux_params.
przygotuj (data_batch [, sparse_row_id_fn]) Operator przygotowuje moduł do przetwarzania zadanej paczki danych.
save_checkpoint (prefiks, epoka [, remove_amp_cast]) Ta metoda, jak sama nazwa wskazuje, zapisuje bieżący postęp w punkcie kontrolnym dla wszystkich zasobników w module BucketingModule. Zaleca się użycie mx.callback.module_checkpoint jako epoch_end_callback, aby zapisać podczas uczenia.
set_params (arg_params, aux_params [,…]) Jak nazwa wskazuje, funkcja ta przypisze parametry i wartości stanu pomocniczego.
set_states ([stany, wartość]) Ta metoda, jak sama nazwa wskazuje, ustawia wartości dla stanów.
switch_bucket (klucz_zbiornika, kształty_danych [,…]) Przełącza się do innego zasobnika.
aktualizacja() Ta metoda aktualizuje podane parametry zgodnie z zainstalowanym optymalizatorem. Aktualizuje również gradienty obliczone w poprzedniej partii do przodu i do tyłu.
update_metric (eval_metric, labels [, pre_sliced]) Ta metoda, jak sama nazwa wskazuje, ocenia i gromadzi metrykę oceny wyników ostatniego obliczenia w przód.

Atrybuty

Poniższa tabela przedstawia atrybuty składające się z metod BaseModule klasa -

Atrybuty Definicja
nazwy_danych Zawiera listę nazw danych wymaganych przez ten moduł.
data_shapes Składa się z listy par (nazwa, kształt) określających wejścia danych do tego modułu.
label_shapes Pokazuje listę par (nazwa, kształt) określających wejścia etykiet do tego modułu.
nazwy_wyjściowe Zawiera listę nazw wyjść tego modułu.
output_shapes Składa się z listy par (nazwa, kształt) określających wyjścia tego modułu.
symbol Zgodnie z nazwą, ten atrybut pobiera symbol skojarzony z tym modułem.

data_shapes: Możesz polecić link dostępny pod adresem https://mxnet.apache.orgdla szczegółów. output_shapes: Więcej

output_shapes: Więcej informacji można znaleźć pod adresem https://mxnet.apache.org/api/python

BucketingModule (sym_gen […])

Reprezentuje Bucketingmodule klasa modułu, która pomaga efektywnie radzić sobie z wejściami o różnej długości.

Metody

Poniższa tabela przedstawia stosowane metody BucketingModule class -

Atrybuty

Poniższa tabela przedstawia atrybuty składające się z metod BaseModule class -

Atrybuty Definicja
nazwy_danych Zawiera listę nazw danych wymaganych przez ten moduł.
data_shapes Składa się z listy par (nazwa, kształt) określających wejścia danych do tego modułu.
label_shapes Pokazuje listę par (nazwa, kształt) określających wejścia etykiet do tego modułu.
nazwy_wyjściowe Zawiera listę nazw wyjść tego modułu.
output_shapes Składa się z listy par (nazwa, kształt) określających wyjścia tego modułu.
Symbol Zgodnie z nazwą, ten atrybut pobiera symbol skojarzony z tym modułem.

data_shapes - możesz skierować link pod adresem https://mxnet.apache.org/api/python/docs po więcej informacji.

output_shapes- Możesz odnieść się do linku na https://mxnet.apache.org/api/python/docs po więcej informacji.

Moduł (symbol [, data_names, label_names,…])

Reprezentuje podstawowy moduł, który zawija symbol.

Metody

Poniższa tabela przedstawia stosowane metody Module class -

Metody Definicja
backward ([out_grads]) Jak nazwa wskazuje, ta metoda implementuje backward obliczenie.
bind (data_shapes [, label_shapes,…]) Wiąże symbole do konstruowania wykonawców i jest konieczne, zanim będzie można wykonać obliczenia z modułem.
borrow_optimizer (shared_module) Jak sama nazwa wskazuje, ta metoda pożyczy optymalizator z udostępnionego modułu.
forward (data_batch [, is_train]) Jak nazwa wskazuje, ta metoda implementuje Forwardobliczenie. Ta metoda obsługuje partie danych o różnych kształtach, takich jak różne rozmiary partii lub różne rozmiary obrazów.
get_input_grads ([merge_multi_context]) Ta metoda pobierze gradienty do danych wejściowych, które są obliczane w poprzednim obliczeniu wstecznym.
get_outputs ([merge_multi_context]) Jak sama nazwa wskazuje, ta metoda pobierze dane wyjściowe z poprzednich obliczeń do przodu.
get_params () Pobiera parametry, zwłaszcza te, które są potencjalnie kopiami rzeczywistych parametrów używanych do obliczeń na urządzeniu.
get_states ([merge_multi_context]) Ta metoda pobierze stany ze wszystkich urządzeń
init_optimizer ([kvstore, optimizer,…]) Ta metoda instaluje i inicjalizuje optymalizatory. Inicjuje się równieżkvstore do dystrybucji szkolenia.
init_params ([inicjator, arg_params,…]) Jak sama nazwa wskazuje, ta metoda zainicjuje parametry i stany pomocnicze.
install_monitor (pon.) Ta metoda zainstaluje monitor na wszystkich modułach wykonawczych.
load (prefiks, epoch [, sym_gen,…]) Ta metoda stworzy model z wcześniej zapisanego punktu kontrolnego.
load_optimizer_states (fname) Ta metoda załaduje optymalizator, tj. Stan Updater z pliku.
przygotuj (data_batch [, sparse_row_id_fn]) Operator przygotowuje moduł do przetwarzania zadanej paczki danych.
reshape (data_shapes [, label_shapes]) Ta metoda, jak sama nazwa wskazuje, zmienia kształt modułu dla nowych kształtów wejściowych.
save_checkpoint (prefiks, epoka [,…]) Zapisuje bieżący postęp do punktu kontrolnego.
save_optimizer_states (fname) Ta metoda zapisuje stan optymalizatora lub modułu aktualizującego do pliku.
set_params (arg_params, aux_params [,…]) Jak nazwa wskazuje, funkcja ta przypisze parametry i wartości stanu pomocniczego.
set_states ([stany, wartość]) Ta metoda, jak sama nazwa wskazuje, ustawia wartości dla stanów.
aktualizacja() Ta metoda aktualizuje podane parametry zgodnie z zainstalowanym optymalizatorem. Aktualizuje również gradienty obliczone w poprzedniej partii do przodu i do tyłu.
update_metric (eval_metric, labels [, pre_sliced]) Ta metoda, jak sama nazwa wskazuje, ocenia i gromadzi metrykę oceny wyników ostatniego obliczenia w przód.

Atrybuty

Poniższa tabela przedstawia atrybuty składające się z metod Module class -

Atrybuty Definicja
nazwy_danych Zawiera listę nazw danych wymaganych przez ten moduł.
data_shapes Składa się z listy par (nazwa, kształt) określających wejścia danych do tego modułu.
label_shapes Pokazuje listę par (nazwa, kształt) określających wejścia etykiet do tego modułu.
nazwy_wyjściowe Zawiera listę nazw wyjść tego modułu.
output_shapes Składa się z listy par (nazwa, kształt) określających wyjścia tego modułu.
label_names Zawiera listę nazw etykiet wymaganych przez ten moduł.

data_shapes: Odwiedź łącze https://mxnet.apache.org/api/python/docs/api/module dla dalszych szczegółów.

output_shapes: link podany w niniejszym dokumencie https://mxnet.apache.org/api/python/docs/api/module/index.html poda inne ważne informacje.

PythonLossModule ([nazwa, nazwa_danych,…])

Podstawą tej klasy jest mxnet.module.python_module.PythonModule. Klasa PythonLossModule to wygodna klasa modułu, która implementuje wszystkie lub wiele interfejsów API modułu jako puste funkcje.

Metody

Poniższa tabela przedstawia stosowane metody PythonLossModule klasa:

Metody Definicja
backward ([out_grads]) Jak nazwa wskazuje, ta metoda implementuje backward obliczenie.
forward (data_batch [, is_train]) Jak nazwa wskazuje, ta metoda implementuje Forwardobliczenie. Ta metoda obsługuje partie danych o różnych kształtach, takich jak różne rozmiary partii lub różne rozmiary obrazów.
get_input_grads ([merge_multi_context]) Ta metoda pobierze gradienty do danych wejściowych, które są obliczane w poprzednim obliczeniu wstecznym.
get_outputs ([merge_multi_context]) Jak sama nazwa wskazuje, ta metoda pobierze dane wyjściowe z poprzednich obliczeń do przodu.
install_monitor (pon.) Ta metoda zainstaluje monitor na wszystkich modułach wykonawczych.

PythonModule ([data_names, label_names…])

Podstawą tej klasy jest mxnet.module.base_module.BaseModule. Klasa PythonModule jest również wygodną klasą modułu, która implementuje wszystkie lub wiele interfejsów API modułu jako puste funkcje.

Metody

Poniższa tabela przedstawia stosowane metody PythonModule klasa -

Metody Definicja
bind (data_shapes [, label_shapes,…]) Wiąże symbole do konstruowania wykonawców i jest konieczne, zanim będzie można wykonać obliczenia z modułem.
get_params () Pobiera parametry, zwłaszcza te, które są potencjalnie kopiami rzeczywistych parametrów używanych do obliczeń na urządzeniu.
init_optimizer ([kvstore, optimizer,…]) Ta metoda instaluje i inicjalizuje optymalizatory. Inicjuje się równieżkvstore do dystrybucji szkolenia.
init_params ([inicjator, arg_params,…]) Jak sama nazwa wskazuje, ta metoda zainicjuje parametry i stany pomocnicze.
aktualizacja() Ta metoda aktualizuje podane parametry zgodnie z zainstalowanym optymalizatorem. Aktualizuje również gradienty obliczone w poprzedniej partii do przodu i do tyłu.
update_metric (eval_metric, labels [, pre_sliced]) Ta metoda, jak sama nazwa wskazuje, ocenia i gromadzi metrykę oceny wyników ostatniego obliczenia w przód.

Atrybuty

Poniższa tabela przedstawia atrybuty składające się z metod PythonModule klasa -

Atrybuty Definicja
nazwy_danych Zawiera listę nazw danych wymaganych przez ten moduł.
data_shapes Składa się z listy par (nazwa, kształt) określających wejścia danych do tego modułu.
label_shapes Pokazuje listę par (nazwa, kształt) określających wejścia etykiet do tego modułu.
nazwy_wyjściowe Zawiera listę nazw wyjść tego modułu.
output_shapes Składa się z listy par (nazwa, kształt) określających wyjścia tego modułu.

data_shapes - skorzystaj z linku https://mxnet.apache.org dla szczegółów.

output_shapes - Aby uzyskać więcej informacji, odwiedź link dostępny pod adresem https://mxnet.apache.org

SequentialModule ([logger])

Podstawą tej klasy jest mxnet.module.base_module.BaseModule. Klasa SequentialModule jest również modułem kontenera, który może łączyć ze sobą więcej niż dwa (wiele) modułów.

Metody

Poniższa tabela przedstawia stosowane metody SequentialModule klasa

Metody Definicja
add (module, ** kwargs) To najważniejsza funkcja tej klasy. Dodaje moduł do łańcucha.
backward ([out_grads]) Jak sama nazwa wskazuje, ta metoda implementuje obliczenia wsteczne.
bind (data_shapes [, label_shapes,…]) Wiąże symbole do konstruowania wykonawców i jest konieczne, zanim będzie można wykonać obliczenia z modułem.
forward (data_batch [, is_train]) Jak nazwa wskazuje, ta metoda implementuje obliczenia Forward. Ta metoda obsługuje partie danych o różnych kształtach, takich jak różne rozmiary partii lub różne rozmiary obrazów.
get_input_grads ([merge_multi_context]) Ta metoda pobierze gradienty do danych wejściowych, które są obliczane w poprzednim obliczeniu wstecznym.
get_outputs ([merge_multi_context]) Jak sama nazwa wskazuje, ta metoda pobierze dane wyjściowe z poprzednich obliczeń do przodu.
get_params () Pobiera parametry, zwłaszcza te, które są potencjalnie kopiami rzeczywistych parametrów używanych do obliczeń na urządzeniu.
init_optimizer ([kvstore, optimizer,…]) Ta metoda instaluje i inicjalizuje optymalizatory. Inicjuje się równieżkvstore do dystrybucji szkolenia.
init_params ([inicjator, arg_params,…]) Jak sama nazwa wskazuje, ta metoda zainicjuje parametry i stany pomocnicze.
install_monitor (pon.) Ta metoda zainstaluje monitor na wszystkich modułach wykonawczych.
aktualizacja() Ta metoda aktualizuje podane parametry zgodnie z zainstalowanym optymalizatorem. Aktualizuje również gradienty obliczone w poprzedniej partii do przodu i do tyłu.
update_metric (eval_metric, labels [, pre_sliced]) Ta metoda, jak sama nazwa wskazuje, ocenia i gromadzi metrykę oceny wyników ostatniego obliczenia w przód.

Atrybuty

Poniższa tabela przedstawia atrybuty zawarte w metodach klasy BaseModule -

Atrybuty Definicja
nazwy_danych Zawiera listę nazw danych wymaganych przez ten moduł.
data_shapes Składa się z listy par (nazwa, kształt) określających wejścia danych do tego modułu.
label_shapes Pokazuje listę par (nazwa, kształt) określających wejścia etykiet do tego modułu.
nazwy_wyjściowe Zawiera listę nazw wyjść tego modułu.
output_shapes Składa się z listy par (nazwa, kształt) określających wyjścia tego modułu.
output_shapes Składa się z listy par (nazwa, kształt) określających wyjścia tego modułu.

data_shapes - link podany w niniejszym dokumencie https://mxnet.apache.org pomoże ci szczegółowo zrozumieć atrybut.

output_shapes - Skorzystaj z linku dostępnego pod adresem https://mxnet.apache.org/api dla szczegółów.

Przykłady wdrożeń

W poniższym przykładzie utworzymy plik mxnet moduł.

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

Dane wyjściowe są wymienione poniżej -

<Symbol softmax>

Example

print(mod)

Output

Wyjście pokazano poniżej -

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

W poniższym przykładzie będziemy implementować obliczenia do przodu

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

Po wykonaniu powyższego kodu powinieneś zobaczyć następujące dane wyjściowe -

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

Poniżej podano wynik kodu -

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