Apache MXNet - модуль API Python

API-интерфейс модуля Apache MXNet похож на модель FeedForward, и его проще составлять аналогично модулю Torch. Он состоит из следующих классов -

BaseModule ([регистратор])

Он представляет собой базовый класс модуля. Модуль можно рассматривать как вычислительный компонент или вычислительную машину. Работа модуля заключается в выполнении прямого и обратного прохода. Он также обновляет параметры в модели.

Методы

В следующей таблице показаны методы, состоящие в BaseModule class-

Этот метод будет получать состояния со всех устройств
Методы Определение
назад ([out_grads]) Как следует из названия, этот метод реализует backward вычисление.
bind (data_shapes [, label_shapes,…]) Он связывает символы для построения исполнителей, и это необходимо, прежде чем можно будет выполнять вычисления с модулем.
fit (train_data [, eval_data, eval_metric,…]) Этот метод обучает параметры модуля.
вперед (data_batch [, is_train]) Как следует из названия, этот метод реализует прямое вычисление. Этот метод поддерживает пакеты данных различной формы, например разные размеры пакетов или разные размеры изображений.
forward_backward (пакет данных) Как следует из названия, это удобная функция, которая вызывает как вперед, так и назад.
get_input_grads ([merge_multi_context]) Этот метод будет получать градиенты на входы, которые были вычислены в предыдущем обратном вычислении.
get_outputs ([merge_multi_context]) Как следует из названия, этот метод будет получать результаты предыдущего прямого вычисления.
get_params () Он получает параметры, особенно те, которые потенциально являются копиями фактических параметров, используемых для выполнения вычислений на устройстве.
get_states ([merge_multi_context])
init_optimizer ([kvstore, optimizer,…]) Этот метод устанавливает и инициализирует оптимизаторы. Он также инициализируетkvstore для раздачи обучения.
init_params ([инициализатор, arg_params,…]) Как следует из названия, этот метод инициализирует параметры и вспомогательные состояния.
install_monitor (пн) Этот метод установит монитор на всех исполнителей.
iter_predict (eval_data [, num_batch, reset,…]) Этот метод будет повторять прогнозы.
load_params (имя_файла) Он, как указано в названии, загрузит параметры модели из файла.
предсказать (eval_data [, num_batch,…]) Он выполнит прогноз и также соберет результаты.
подготовить (data_batch [, sparse_row_id_fn]) Оператор подготавливает модуль к обработке заданного пакета данных.
save_params (имя_файла) Как указано в названии, эта функция сохранит параметры модели в файл.
оценка (eval_data, eval_metric [, num_batch,…]) Он запускает прогноз на eval_data а также оценивает производительность в соответствии с заданными eval_metric.
set_params (arg_params, aux_params [,…]) Этот метод присваивает значения параметрам и вспомогательному состоянию.
set_states ([состояния, значение]) Этот метод, как следует из названия, устанавливает значение для состояний.
Обновить() Этот метод обновляет заданные параметры в соответствии с установленным оптимизатором. Он также обновляет градиенты, вычисленные в предыдущем пакете вперед-назад.
update_metric (eval_metric, labels [, pre_sliced]) Этот метод, как следует из названия, оценивает и накапливает метрику оценки на выходах последнего прямого вычисления.
назад ([out_grads]) Как следует из названия, этот метод реализует backward вычисление.
bind (data_shapes [, label_shapes,…]) Он настраивает сегменты и связывает исполнителя с ключом сегмента по умолчанию. Этот метод представляет собой привязку дляBucketingModule.
вперед (data_batch [, is_train]) Как следует из названия, этот метод реализует прямое вычисление. Этот метод поддерживает пакеты данных различной формы, например разные размеры пакетов или разные размеры изображений.
get_input_grads ([merge_multi_context]) Этот метод будет получать градиенты на входах, которые вычислены в предыдущем обратном вычислении.
get_outputs ([merge_multi_context]) Как следует из названия, этот метод будет получать выходные данные из предыдущего прямого вычисления.
get_params () Он получает текущие параметры, особенно те, которые потенциально являются копиями фактических параметров, используемых для выполнения вычислений на устройстве.
get_states ([merge_multi_context]) Этот метод будет получать состояния со всех устройств.
init_optimizer ([kvstore, optimizer,…]) Этот метод устанавливает и инициализирует оптимизаторы. Он также инициализируетkvstore для раздачи обучения.
init_params ([инициализатор, arg_params,…]) Как следует из названия, этот метод инициализирует параметры и вспомогательные состояния.
install_monitor (пн) Этот метод установит монитор на всех исполнителей.
загрузка (префикс, эпоха [, символ_ген,…]) Этот метод создаст модель из ранее сохраненной контрольной точки.
load_dict ([sym_dict, sym_gen,…]) Этот метод создаст модель из сопоставления словаря (dict) bucket_keyк символам. Он также разделяетarg_params и aux_params.
подготовить (data_batch [, sparse_row_id_fn]) Оператор подготавливает модуль к обработке заданного пакета данных.
save_checkpoint (префикс, эпоха [, remove_amp_cast]) Этот метод, как следует из названия, сохраняет текущий прогресс в контрольной точке для всех сегментов в BucketingModule. Рекомендуется использовать mx.callback.module_checkpoint как epoch_end_callback для сохранения во время обучения.
set_params (arg_params, aux_params [,…]) Как указано в названии, эта функция будет назначать параметры и значения вспомогательного состояния.
set_states ([состояния, значение]) Этот метод, как следует из названия, устанавливает значение для состояний.
switch_bucket (bucket_key, data_shapes [,…]) Он переключится на другое ведро.
Обновить() Этот метод обновляет заданные параметры в соответствии с установленным оптимизатором. Он также обновляет градиенты, вычисленные в предыдущем пакете вперед-назад.
update_metric (eval_metric, labels [, pre_sliced]) Этот метод, как следует из названия, оценивает и накапливает метрику оценки на выходах последнего прямого вычисления.

Атрибуты

В следующей таблице показаны атрибуты, входящие в методы BaseModule класс -

Атрибуты Определение
data_names Он состоит из списка имен данных, необходимых для этого модуля.
data_shapes Он состоит из списка пар (имя, форма), определяющих входные данные для этого модуля.
label_shapes Он показывает список пар (имя, форма), определяющих входные метки для этого модуля.
output_names Он состоит из списка имен выходов этого модуля.
output_shapes Он состоит из списка пар (имя, форма), определяющих выходы этого модуля.
условное обозначение Как указано в названии, этот атрибут получает символ, связанный с этим модулем.

data_shapes: вы можете ссылаться на ссылку, доступную на https://mxnet.apache.orgдля подробностей. output_shapes: Подробнее

output_shapes: Дополнительная информация доступна на https://mxnet.apache.org/api/python

BucketingModule (sym_gen […])

Он представляет собой Bucketingmodule класс модуля, который помогает эффективно работать с входами различной длины.

Методы

В следующей таблице показаны методы, состоящие в BucketingModule class -

Атрибуты

В следующей таблице показаны атрибуты, входящие в методы BaseModule class -

Атрибуты Определение
data_names Он состоит из списка имен данных, необходимых для этого модуля.
data_shapes Он состоит из списка пар (имя, форма), определяющих входные данные для этого модуля.
label_shapes Он показывает список пар (имя, форма), определяющих входные метки для этого модуля.
output_names Он состоит из списка имен выходов этого модуля.
output_shapes Он состоит из списка пар (имя, форма), определяющих выходы этого модуля.
Условное обозначение Как указано в названии, этот атрибут получает символ, связанный с этим модулем.

data_shapes - ссылку можно найти на https://mxnet.apache.org/api/python/docs для дополнительной информации.

output_shapes - Ссылку можно найти на https://mxnet.apache.org/api/python/docs для дополнительной информации.

Модуль (символ [, data_names, label_names,…])

Он представляет собой базовый модуль, который обертывает symbol.

Методы

В следующей таблице показаны методы, состоящие в Module class -

Методы Определение
назад ([out_grads]) Как следует из названия, этот метод реализует backward вычисление.
bind (data_shapes [, label_shapes,…]) Он связывает символы для построения исполнителей, и это необходимо, прежде чем можно будет выполнять вычисления с модулем.
заимствовать_оптимизатор (общий_модуль) Как следует из названия, этот метод заимствует оптимизатор из общего модуля.
вперед (data_batch [, is_train]) Как следует из названия, этот метод реализует Forwardвычисление. Этот метод поддерживает пакеты данных различной формы, например разные размеры пакетов или разные размеры изображений.
get_input_grads ([merge_multi_context]) Этот метод будет получать градиенты на входы, которые были вычислены в предыдущем обратном вычислении.
get_outputs ([merge_multi_context]) Как следует из названия, этот метод будет получать результаты предыдущего прямого вычисления.
get_params () Он получает параметры, особенно те, которые потенциально являются копиями фактических параметров, используемых для выполнения вычислений на устройстве.
get_states ([merge_multi_context]) Этот метод будет получать состояния со всех устройств
init_optimizer ([kvstore, optimizer,…]) Этот метод устанавливает и инициализирует оптимизаторы. Он также инициализируетkvstore для раздачи обучения.
init_params ([инициализатор, arg_params,…]) Как следует из названия, этот метод инициализирует параметры и вспомогательные состояния.
install_monitor (пн) Этот метод установит монитор на всех исполнителей.
загрузка (префикс, эпоха [, символ_ген,…]) Этот метод создаст модель из ранее сохраненной контрольной точки.
load_optimizer_states (имя_файла) Этот метод загружает оптимизатор, т.е. состояние средства обновления из файла.
подготовить (data_batch [, sparse_row_id_fn]) Оператор подготавливает модуль к обработке заданного пакета данных.
изменить форму (data_shapes [, label_shapes]) Этот метод, как следует из названия, изменяет форму модуля для новых форм ввода.
save_checkpoint (префикс, эпоха [,…]) Он сохраняет текущий прогресс в контрольную точку.
save_optimizer_states (имя_файла) Этот метод сохраняет состояние оптимизатора или средства обновления в файл.
set_params (arg_params, aux_params [,…]) Как указано в названии, эта функция будет назначать параметры и значения вспомогательного состояния.
set_states ([состояния, значение]) Этот метод, как следует из названия, устанавливает значение для состояний.
Обновить() Этот метод обновляет заданные параметры в соответствии с установленным оптимизатором. Он также обновляет градиенты, вычисленные в предыдущем пакете вперед-назад.
update_metric (eval_metric, labels [, pre_sliced]) Этот метод, как следует из названия, оценивает и накапливает метрику оценки на выходах последнего прямого вычисления.

Атрибуты

В следующей таблице показаны атрибуты, входящие в методы Module class -

Атрибуты Определение
data_names Он состоит из списка имен данных, необходимых для этого модуля.
data_shapes Он состоит из списка пар (имя, форма), определяющих входные данные для этого модуля.
label_shapes Он показывает список пар (имя, форма), определяющих входные метки для этого модуля.
output_names Он состоит из списка имен выходов этого модуля.
output_shapes Он состоит из списка пар (имя, форма), определяющих выходы этого модуля.
label_names Он состоит из списка имен меток, необходимых для этого модуля.

data_shapes: перейдите по ссылке https://mxnet.apache.org/api/python/docs/api/module для получения дополнительной информации.

output_shapes: ссылка, приведенная здесь https://mxnet.apache.org/api/python/docs/api/module/index.html предложит другую важную информацию.

PythonLossModule ([имя, имена_данных,…])

База этого класса mxnet.module.python_module.PythonModule. Класс PythonLossModule - удобный класс модуля, который реализует все или многие API-интерфейсы модуля как пустые функции.

Методы

В следующей таблице показаны методы, состоящие в PythonLossModule класс:

Методы Определение
назад ([out_grads]) Как следует из названия, этот метод реализует backward вычисление.
вперед (data_batch [, is_train]) Как следует из названия, этот метод реализует Forwardвычисление. Этот метод поддерживает пакеты данных различной формы, например разные размеры пакетов или разные размеры изображений.
get_input_grads ([merge_multi_context]) Этот метод будет получать градиенты на входы, которые были вычислены в предыдущем обратном вычислении.
get_outputs ([merge_multi_context]) Как следует из названия, этот метод будет получать результаты предыдущего прямого вычисления.
install_monitor (пн) Этот метод установит монитор на всех исполнителей.

PythonModule ([data_names, label_names…])

Базой этого класса является mxnet.module.base_module.BaseModule. Класс PythonModule также является удобным классом модуля, который реализует все или многие API модулей как пустые функции.

Методы

В следующей таблице показаны методы, состоящие в PythonModule класс -

Методы Определение
bind (data_shapes [, label_shapes,…]) Он связывает символы для построения исполнителей, и это необходимо, прежде чем можно будет выполнять вычисления с модулем.
get_params () Он получает параметры, особенно те, которые потенциально являются копиями фактических параметров, используемых для выполнения вычислений на устройстве.
init_optimizer ([kvstore, optimizer,…]) Этот метод устанавливает и инициализирует оптимизаторы. Он также инициализируетkvstore для раздачи обучения.
init_params ([инициализатор, arg_params,…]) Как следует из названия, этот метод инициализирует параметры и вспомогательные состояния.
Обновить() Этот метод обновляет заданные параметры в соответствии с установленным оптимизатором. Он также обновляет градиенты, вычисленные в предыдущем пакете вперед-назад.
update_metric (eval_metric, labels [, pre_sliced]) Этот метод, как следует из названия, оценивает и накапливает метрику оценки на выходах последнего прямого вычисления.

Атрибуты

В следующей таблице показаны атрибуты, входящие в методы PythonModule класс -

Атрибуты Определение
data_names Он состоит из списка имен данных, необходимых для этого модуля.
data_shapes Он состоит из списка пар (имя, форма), определяющих входные данные для этого модуля.
label_shapes Он показывает список пар (имя, форма), определяющих входные метки для этого модуля.
output_names Он состоит из списка имен выходов этого модуля.
output_shapes Он состоит из списка пар (имя, форма), определяющих выходы этого модуля.

data_shapes - перейдите по ссылке https://mxnet.apache.org для подробностей.

output_shapes - Для получения дополнительной информации посетите ссылку, доступную на https://mxnet.apache.org

SequentialModule ([регистратор])

Базой этого класса является mxnet.module.base_module.BaseModule. Класс SequentialModule также является контейнерным модулем, который может объединять в цепочку более двух (нескольких) модулей.

Методы

В следующей таблице показаны методы, состоящие в SequentialModule класс

Методы Определение
добавить (модуль, ** kwargs) Это самая важная функция этого класса. Он добавляет модуль в цепочку.
назад ([out_grads]) Как следует из названия, этот метод реализует обратное вычисление.
bind (data_shapes [, label_shapes,…]) Он связывает символы для построения исполнителей, и это необходимо, прежде чем можно будет выполнять вычисления с модулем.
вперед (data_batch [, is_train]) Как следует из названия, этот метод реализует прямое вычисление. Этот метод поддерживает пакеты данных различной формы, например разные размеры пакетов или разные размеры изображений.
get_input_grads ([merge_multi_context]) Этот метод будет получать градиенты на входы, которые были вычислены в предыдущем обратном вычислении.
get_outputs ([merge_multi_context]) Как следует из названия, этот метод будет получать результаты предыдущего прямого вычисления.
get_params () Он получает параметры, особенно те, которые потенциально являются копиями фактических параметров, используемых для выполнения вычислений на устройстве.
init_optimizer ([kvstore, optimizer,…]) Этот метод устанавливает и инициализирует оптимизаторы. Он также инициализируетkvstore для раздачи обучения.
init_params ([инициализатор, arg_params,…]) Как следует из названия, этот метод инициализирует параметры и вспомогательные состояния.
install_monitor (пн) Этот метод установит монитор на всех исполнителей.
Обновить() Этот метод обновляет заданные параметры в соответствии с установленным оптимизатором. Он также обновляет градиенты, вычисленные в предыдущем пакете вперед-назад.
update_metric (eval_metric, labels [, pre_sliced]) Этот метод, как следует из названия, оценивает и накапливает метрику оценки на выходах последнего прямого вычисления.

Атрибуты

В следующей таблице показаны атрибуты, содержащиеся в методах класса BaseModule -

Атрибуты Определение
data_names Он состоит из списка имен данных, необходимых для этого модуля.
data_shapes Он состоит из списка пар (имя, форма), определяющих входные данные для этого модуля.
label_shapes Он показывает список пар (имя, форма), определяющих входные метки для этого модуля.
output_names Он состоит из списка имен выходов этого модуля.
output_shapes Он состоит из списка пар (имя, форма), определяющих выходы этого модуля.
output_shapes Он состоит из списка пар (имя, форма), определяющих выходы этого модуля.

data_shapes - Приведенная здесь ссылка https://mxnet.apache.org поможет вам более подробно разобраться в атрибуте.

output_shapes - Перейдите по ссылке на сайте https://mxnet.apache.org/api для подробностей.

Примеры реализации

В приведенном ниже примере мы собираемся создать mxnet модуль.

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

Вывод упомянут ниже -

<Symbol softmax>

Example

print(mod)

Output

Результат показан ниже -

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

В этом примере ниже мы будем реализовывать прямое вычисление

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

Когда вы выполните приведенный выше код, вы должны увидеть следующий результат -

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

Ниже приведен вывод кода -

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