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