Module Класс
Представляет вычислительную единицу, используемую в конвейере Машинное обучение Azure.
Модуль — это коллекция файлов, которые будут выполняться в целевом объекте вычислений, и описание интерфейса. Коллекция файлов может быть скриптом, двоичными файлами или любыми другими файлами, необходимыми для выполнения в целевом объекте вычислений. Интерфейс модуля описывает входные и выходные данные, а также определения параметров. Он не привязывает их к конкретным значениям или данным. С модулем связан моментальный снимок, который фиксирует коллекцию файлов, определенных для модуля.
Инициализация модуля.
- Наследование
-
builtins.objectModule
Конструктор
Module(workspace, module_id, name, description, status, default_version, module_version_list, _module_provider=None, _module_version_provider=None)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Объект рабочей области, которому принадлежит этот объект Module. |
module_id
Обязательно
|
Идентификатор Module. |
name
Обязательно
|
Имя Module. |
description
Обязательно
|
Описание Module. |
status
Обязательно
|
Новое состояние Module: Active, Deprecated или Disabled. |
default_version
Обязательно
|
Версия Module по умолчанию. |
module_version_list
Обязательно
|
Список объектов ModuleVersionDescriptor. |
_module_provider
|
<xref:azureml.pipeline.core._aeva_provider._AzureMLModuleProvider>
(Только для внутреннего использования.) Поставщик module. Default value: None
|
_module_version_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaMlModuleVersionProvider>
(Только для внутреннего использования.) Поставщик ModuleVersion. Default value: None
|
workspace
Обязательно
|
Объект рабочей области, которому принадлежит этот объект Module. |
module_id
Обязательно
|
Идентификатор Module. |
name
Обязательно
|
Имя Module. |
description
Обязательно
|
Описание Module. |
status
Обязательно
|
Новое состояние Module: Active, Deprecated или Disabled. |
default_version
Обязательно
|
Версия Module по умолчанию. |
module_version_list
Обязательно
|
Список объектов ModuleVersionDescriptor. |
_module_provider
Обязательно
|
<xref:<xref:_AevaMlModuleProvider object>>
Поставщик Module. |
_module_version_provider
Обязательно
|
<xref:azureml.pipeline.core._aeva_provider._AevaMlModuleVersionProvider>
Поставщик ModuleVersion. |
Комментарии
Объект Module выступает в качестве контейнера его версий. В следующем примере ModuleVersion создается из метода publish_python_script и имеет два входных и два выходных значения. Созданный ModuleVersion является версией по умолчанию (is_default
имеет значение True).
out_sum = OutputPortDef(name="out_sum", default_datastore_name=datastore.name, default_datastore_mode="mount",
label="Sum of two numbers")
out_prod = OutputPortDef(name="out_prod", default_datastore_name=datastore.name, default_datastore_mode="mount",
label="Product of two numbers")
entry_version = module.publish_python_script("calculate.py", "initial",
inputs=[], outputs=[out_sum, out_prod], params = {"initialNum":12},
version="1", source_directory="./calc")
Полный пример можно найти здесь: https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb
Этот модуль можно использовать при определении конвейера на различных этапах с использованием ModuleStep.
В следующем примере показано, как подключить данные, используемые в конвейере, к входным и выходным данным ModuleVersion с помощью PipelineData:
middle_step_input_wiring = {"in1":first_sum, "in2":first_prod}
middle_sum = PipelineData("middle_sum", datastore=datastore, output_mode="mount",is_directory=False)
middle_prod = PipelineData("middle_prod", datastore=datastore, output_mode="mount",is_directory=False)
middle_step_output_wiring = {"out_sum":middle_sum, "out_prod":middle_prod}
Полный пример можно найти здесь: https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb
Затем при создании ModuleStep можно использовать сопоставление:
middle_step = ModuleStep(module=module,
inputs_map= middle_step_input_wiring,
outputs_map= middle_step_output_wiring,
runconfig=RunConfiguration(), compute_target=aml_compute,
arguments = ["--file_num1", first_sum, "--file_num2", first_prod,
"--output_sum", middle_sum, "--output_product", middle_prod])
Полный пример можно найти здесь: https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb
Разрешение используемой версии модуля происходит после отправки и выполняется следующим образом:
- Удаление всех отключенных версий
- Если указана определенная версия, используйте ее, иначе
- Если для Module определена версия по умолчанию, используйте его, иначе
- Если все версии соответствуют семантике управления версиями без букв, используйте максимальное значение, иначе
- Используйте версию Module, которая была обновлена последней
Обратите внимание, что поскольку сопоставление входных и выходных данных узла с входными и выходными данными модуля определяется при создании конвейера, если разрешенная версия при отправке имеет интерфейс, отличный от того, который разрешается при создании конвейера, отправка конвейера завершится ошибкой.
Базовый модуль можно обновить в соответствии с новыми версиями, сохранив версию по умолчанию.
Модули имеют уникальные имена в рабочей области.
Методы
create |
Создание объекта Module. |
deprecate |
Установка для состояния Module значения Deprecated. |
disable |
Установка для состояния Module значения Disabled. |
enable |
Установка для состояния Module значения Active. |
get |
Получение объекта Module по имени или по идентификатору. Если какое-либо значение не указано, порождается исключение. |
get_default |
Получение версии модуля по умолчанию. |
get_default_version |
Получение версии Module по умолчанию. |
get_versions |
Получение всех версий Module. |
module_def_builder |
Создание объекта определения модуля, описывающего этап. |
module_version_list |
Получение списка версий Module. |
process_source_directory |
Обработка исходного каталога для этапа и проверка существования скрипта. |
publish |
Создание объекта ModuleVersion и его добавление в текущий Module. |
publish_adla_script |
Создание объекта ModuleVersion на основе Azure Data Lake Analytics (ADLA) и его добавление в текущий модуль. |
publish_azure_batch |
Создание ModuleVersion, использующего пакетную службу Azure, и его добавление ее в текущий Module. |
publish_python_script |
Создание ModuleVersion на основе скрипта Python и его добавление в текущий Module. |
resolve |
Разрешение и возврат правильного объекта ModuleVersion. |
set_default_version |
Задание ModuleVersion по умолчанию для Module. |
set_description |
Указание описания Module. |
set_name |
Указание имени Module. |
create
Создание объекта Module.
static create(workspace, name, description, _workflow_provider=None)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Рабочая область для создания Module. |
name
Обязательно
|
Имя Module. |
description
Обязательно
|
Описание Module. |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
(Только для внутреннего использования.) Поставщик рабочих процессов. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Объект Module. |
deprecate
Установка для состояния Module значения Deprecated.
deprecate()
disable
Установка для состояния Module значения Disabled.
disable()
enable
Установка для состояния Module значения Active.
enable()
get
Получение объекта Module по имени или по идентификатору. Если какое-либо значение не указано, порождается исключение.
static get(workspace, module_id=None, name=None, _workflow_provider=None)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Рабочая область для создания Module. |
module_id
|
Идентификатор Module. Default value: None
|
name
|
Имя Module. Default value: None
|
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
(Только для внутреннего использования.) Поставщик рабочих процессов. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Объект Module. |
get_default
Получение версии модуля по умолчанию.
get_default()
Возвращаемое значение
Тип | Описание |
---|---|
Версия модуля по умолчанию. |
get_default_version
Получение версии Module по умолчанию.
get_default_version()
Возвращаемое значение
Тип | Описание |
---|---|
Версия Module по умолчанию. |
get_versions
Получение всех версий Module.
static get_versions(workspace, name, _workflow_provider=None)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Рабочая область, в которой был создан объект Module. |
name
Обязательно
|
Имя Module. |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
(Только для внутреннего использования.) Поставщик рабочих процессов. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Список ModuleVersionDescriptor. |
module_def_builder
Создание объекта определения модуля, описывающего этап.
static module_def_builder(name, description, execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, module_type=None, step_type=None, arguments=None, runconfig=None, cloud_settings=None)
Параметры
Имя | Описание |
---|---|
name
Обязательно
|
Имя Module. |
description
Обязательно
|
Описание Module. |
execution_type
Обязательно
|
Тип выполнения Module. |
input_bindings
Обязательно
|
Входные привязки Module. |
output_bindings
Обязательно
|
Выходные привязки Module. |
param_defs
|
Определения параметров Module. Default value: None
|
create_sequencing_ports
|
Указывает, будут ли создаваться для Module порты виртуализации. Default value: True
|
allow_reuse
|
Указывает, будет ли Module доступен для многократного использования. Default value: True
|
version
|
Версия класса Module. Default value: None
|
module_type
|
Тип Module. Default value: None
|
step_type
|
Тип этапа, связанный с этим модулем, например, PythonScriptStep, HyperDriveStep и т. д. Default value: None
|
arguments
|
Список аргументов с заметками для использования при вызове этого модуля. Default value: None
|
runconfig
|
Файл runconfig, который будет использоваться для python_script_step. Default value: None
|
cloud_settings
|
Параметры, которые будут использоваться для облаков Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Объект определения Module. |
Исключения
Тип | Описание |
---|---|
module_version_list
Получение списка версий Module.
module_version_list()
Возвращаемое значение
Тип | Описание |
---|---|
Список ModuleVersionDescriptor. |
process_source_directory
Обработка исходного каталога для этапа и проверка существования скрипта.
static process_source_directory(name, source_directory, script_name)
Параметры
Имя | Описание |
---|---|
name
Обязательно
|
Имя шага этапа. |
source_directory
Обязательно
|
Исходный каталог для этапа. |
script_name
Обязательно
|
Имя скрипта для этапа. |
Возвращаемое значение
Тип | Описание |
---|---|
Исходный каталог и хэш-пути. |
Исключения
Тип | Описание |
---|---|
publish
Создание объекта ModuleVersion и его добавление в текущий Module.
publish(description, execution_type, inputs, outputs, param_defs=None, create_sequencing_ports=True, version=None, is_default=False, content_path=None, hash_paths=None, category=None, arguments=None, runconfig=None)
Параметры
Имя | Описание |
---|---|
description
Обязательно
|
Описание Module. |
execution_type
Обязательно
|
Тип выполнения класса Module.
Допустимые значения — |
inputs
Обязательно
|
Входные данные класса Module. |
outputs
Обязательно
|
Выходные данные Module. |
param_defs
|
Определения параметров Module. Default value: None
|
create_sequencing_ports
|
Указывает, будут ли создаваться для Module порты виртуализации. Default value: True
|
version
|
Версия класса Module. Default value: None
|
is_default
|
Указывает, является ли опубликованная версия версией по умолчанию. Default value: False
|
content_path
|
directory. Default value: None
|
hash_paths
|
Список путей для хэширования при проверке изменений в содержимом шага. Если изменения не обнаружены, конвейер будет повторно использовать содержимое этапа из предыдущего выполнения. По умолчанию содержимое Default value: None
|
category
|
Категория версии модуля. Default value: None
|
arguments
|
Аргументы, используемые при вызове модуля. Аргументы могут быть строками, входными ссылками (InputPortDef), выходными ссылками (OutputPortDef) и параметрами конвейера (PipelineParameter). Default value: None
|
runconfig
|
Необязательный RunConfiguration. RunConfiguration можно использовать для указания дополнительных требований для выполнения, таких как зависимости Conda и образ Docker. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Исключения
Тип | Описание |
---|---|
publish_adla_script
Создание объекта ModuleVersion на основе Azure Data Lake Analytics (ADLA) и его добавление в текущий модуль.
publish_adla_script(script_name, description, inputs, outputs, params=None, create_sequencing_ports=True, degree_of_parallelism=None, priority=None, runtime_version=None, compute_target=None, version=None, is_default=False, source_directory=None, hash_paths=None, category=None, arguments=None)
Параметры
Имя | Описание |
---|---|
script_name
Обязательно
|
Имя скрипта ADLA относительно |
description
Обязательно
|
Описание версии Module. |
inputs
Обязательно
|
Входные привязки Module. |
outputs
Обязательно
|
Выходные привязки Module. |
params
|
Параметры ModuleVersion в виде пар name-default_value. Default value: None
|
create_sequencing_ports
|
Указывает, будут ли создаваться для Module порты виртуализации. Default value: True
|
degree_of_parallelism
|
Степень параллелизации, используемая для этого задания. Default value: None
|
priority
|
Значение приоритета, используемое для текущего задания. Default value: None
|
runtime_version
|
Версия среды выполнения обработчика Azure Data Lake Analytics (ADLA). Default value: None
|
compute_target
|
Служба вычислений ADLA, используемая для этого задания. Default value: None
|
version
|
Версия модуля. Default value: None
|
is_default
|
Указывает, является ли опубликованная версия версией по умолчанию. Default value: False
|
source_directory
|
directory. Default value: None
|
hash_paths
|
hash_paths Default value: None
|
category
|
Категория версии модуля. Default value: None
|
arguments
|
Аргументы, используемые при вызове модуля. Аргументы могут быть строками, входными ссылками (InputPortDef), выходными ссылками (OutputPortDef) и параметрами конвейера (PipelineParameter). Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
publish_azure_batch
Создание ModuleVersion, использующего пакетную службу Azure, и его добавление ее в текущий Module.
publish_azure_batch(description, compute_target, inputs, outputs, params=None, create_sequencing_ports=True, version=None, is_default=False, create_pool=False, pool_id=None, delete_batch_job_after_finish=False, delete_batch_pool_after_finish=False, is_positive_exit_code_failure=True, vm_image_urn='urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter', run_task_as_admin=False, target_compute_nodes=1, vm_size='standard_d1_v2', executable=None, source_directory=None, category=None, arguments=None)
Параметры
Имя | Описание |
---|---|
description
Обязательно
|
Описание версии Module. |
compute_target
Обязательно
|
BatchCompute или
str
Целевой объект вычислений BatchCompute. |
inputs
Обязательно
|
Входные привязки Module. |
outputs
Обязательно
|
Выходные привязки Module. |
params
|
Параметры ModuleVersion в виде пар name-default_value. Default value: None
|
create_sequencing_ports
|
Указывает, будут ли создаваться для Module порты виртуализации. Default value: True
|
version
|
Версия класса Module. Default value: None
|
is_default
|
Указывает, является ли опубликованная версия версией по умолчанию. Default value: False
|
create_pool
|
Указывает, следует ли создавать пул перед выполнением заданий. Default value: False
|
pool_id
|
(Обязательно) Идентификатор пула, в котором будет выполняться задание. Default value: None
|
delete_batch_job_after_finish
|
Указывает, следует ли удалять задание из учетной записи пакетной службы после его завершения. Default value: False
|
delete_batch_pool_after_finish
|
Указывает, следует ли удалять пул после завершения задания. Default value: False
|
is_positive_exit_code_failure
|
Указывает, завершается ли задание ошибкой, если существует задача с положительным кодом. Default value: True
|
vm_image_urn
|
Если Default value: urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter
|
run_task_as_admin
|
Указывает, должна ли задача выполняться с правами администратора. Default value: False
|
target_compute_nodes
|
Если Default value: 1
|
vm_size
|
Если Default value: standard_d1_v2
|
executable
|
Имя команды или исполняемого файла, которые будут выполняться в рамках этого задания. Default value: None
|
source_directory
|
Исходный каталог. Default value: None
|
category
|
Категория версии модуля. Default value: None
|
arguments
|
Аргументы, используемые при вызове модуля. Аргументы могут быть строками, входными ссылками (InputPortDef), выходными ссылками (OutputPortDef) и параметрами конвейера (PipelineParameter). Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Исключения
Тип | Описание |
---|---|
publish_python_script
Создание ModuleVersion на основе скрипта Python и его добавление в текущий Module.
publish_python_script(script_name, description, inputs, outputs, params=None, create_sequencing_ports=True, version=None, is_default=False, source_directory=None, hash_paths=None, category=None, arguments=None, runconfig=None)
Параметры
Имя | Описание |
---|---|
script_name
Обязательно
|
Имя скрипта Python (относительно |
description
Обязательно
|
Описание версии Module. |
inputs
Обязательно
|
Входные привязки Module. |
outputs
Обязательно
|
Выходные привязки Module. |
params
|
Параметры ModuleVersion в виде пар name-default_value. Default value: None
|
create_sequencing_ports
|
Указывает, будут ли создаваться для Module порты виртуализации. Default value: True
|
version
|
Версия класса Module. Default value: None
|
is_default
|
Указывает, является ли опубликованная версия версией по умолчанию. Default value: False
|
source_directory
|
directory. Default value: None
|
hash_paths
|
Список путей для хэширования при проверке изменений в содержимом шага. Если изменения не обнаружены, конвейер будет повторно использовать содержимое этапа из предыдущего выполнения. По умолчанию содержимое Default value: None
|
category
|
Категория версии модуля. Default value: None
|
arguments
|
Аргументы, используемые при вызове модуля. Аргументы могут быть строками, входными ссылками (InputPortDef), выходными ссылками (OutputPortDef) и параметрами конвейера (PipelineParameter). Default value: None
|
runconfig
|
Необязательный RunConfiguration. RunConfiguration можно использовать для указания дополнительных требований для выполнения, таких как зависимости Conda и образ Docker. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
resolve
Разрешение и возврат правильного объекта ModuleVersion.
resolve(version=None)
Параметры
Имя | Описание |
---|---|
version
|
Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Используемая версия Module. |
set_default_version
Задание ModuleVersion по умолчанию для Module.
set_default_version(version_id)
Параметры
Имя | Описание |
---|---|
version_id
Обязательно
|
|
Возвращаемое значение
Тип | Описание |
---|---|
Версия по умолчанию. |
Исключения
Тип | Описание |
---|---|
set_description
Указание описания Module.
set_description(description)
Параметры
Имя | Описание |
---|---|
description
Обязательно
|
Указываемое описание. |
Исключения
Тип | Описание |
---|---|
set_name
Указание имени Module.
set_name(name)
Параметры
Имя | Описание |
---|---|
name
Обязательно
|
Указываемое имя. |
Исключения
Тип | Описание |
---|---|
Атрибуты
default_version
Получение версии Module по умолчанию.
Возвращаемое значение
Тип | Описание |
---|---|
Строка версии по умолчанию. |