Condividi tramite


Module Classe

Rappresenta un'unità di calcolo usata in una pipeline di Azure Machine Learning.

Un modulo è una raccolta di file che verranno eseguiti su una destinazione di calcolo e una descrizione di un'interfaccia. La raccolta di file può essere script, file binari o qualsiasi altro file necessario per l'esecuzione nella destinazione di calcolo. L'interfaccia del modulo descrive input, output e definizioni di parametri. Non li associa a valori o dati specifici. Un modulo ha uno snapshot associato a esso, che acquisisce la raccolta di file definiti per il modulo.

Inizializzare il modulo.

Ereditarietà
builtins.object
Module

Costruttore

Module(workspace, module_id, name, description, status, default_version, module_version_list, _module_provider=None, _module_version_provider=None)

Parametri

Nome Descrizione
workspace
Necessario

L'oggetto dell'area di lavoro a cui appartiene il modulo.

module_id
Necessario
str

ID del modulo.

name
Necessario
str

Nome del modulo.

description
Necessario
str

Descrizione del modulo.

status
Necessario
str

Nuovo stato del modulo: 'Attivo', 'Deprecato' o 'Disabilitato'.

default_version
Necessario
str

Versione predefinita del modulo.

module_version_list
Necessario

Elenco di oggetti ModuleVersionDescriptor.

_module_provider
<xref:azureml.pipeline.core._aeva_provider._AzureMLModuleProvider>

(Solo uso interno). Provider di moduli.

Valore predefinito: None
_module_version_provider
<xref:azureml.pipeline.core._aeva_provider._AevaMlModuleVersionProvider>

(Solo uso interno). Provider ModuleVersion.

Valore predefinito: None
workspace
Necessario

L'oggetto dell'area di lavoro a cui appartiene il modulo.

module_id
Necessario
str

ID del modulo.

name
Necessario
str

Nome del modulo.

description
Necessario
str

Descrizione del modulo.

status
Necessario
str

Nuovo stato del modulo: 'Attivo', 'Deprecato' o 'Disabilitato'.

default_version
Necessario
str

Versione predefinita del modulo.

module_version_list
Necessario

Elenco di oggetti ModuleVersionDescriptor.

_module_provider
Necessario
<xref:<xref:_AevaMlModuleProvider object>>

Provider di moduli.

_module_version_provider
Necessario
<xref:azureml.pipeline.core._aeva_provider._AevaMlModuleVersionProvider>

Provider ModuleVersion.

Commenti

Un modulo funge da contenitore delle versioni. Nell'esempio publish_python_script seguente viene creato un ModuleVersion dal metodo e ha due input e due output. La creazione di ModuleVersion è la versione predefinita (is_default è impostata su 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")

L'esempio completo è disponibile da https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb

Questo modulo può essere usato durante la definizione di una pipeline, in passaggi diversi, usando un ModuleStepoggetto .

Nell'esempio seguente viene illustrato come collegare i dati usati nella pipeline agli input e agli output di un ModuleVersion usando 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}

L'esempio completo è disponibile da https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb

Il mapping può quindi essere usato durante la creazione di 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])

L'esempio completo è disponibile da https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb

La risoluzione della versione del modulo da usare avviene al momento dell'invio e segue il processo seguente:

  • Rimuovere tutte le versioni disabilitate
  • Se è stata dichiarata una versione specifica, usare questo, altrimenti
  • Se una versione predefinita è stata definita nel modulo, usare questa opzione,
  • Se tutte le versioni seguono il controllo delle versioni semantiche senza lettere, prendere il valore più alto, altrimenti
  • Prendere la versione del modulo aggiornato l'ultima volta

Si noti che poiché gli input e gli output di un nodo vengono definiti in base all'input e all'output di un modulo, se la versione risolta al momento dell'invio ha un'interfaccia diversa da quella risolta alla creazione della pipeline, l'invio della pipeline avrà esito negativo.

Il modulo sottostante può essere aggiornato con nuove versioni mantenendo invariata la versione predefinita.

I moduli sono denominati in modo univoco all'interno di un'area di lavoro.

Metodi

create

Creare il modulo.

deprecate

Impostare il modulo su 'Deprecato'.

disable

Impostare il modulo su 'Disabilitato'.

enable

Impostare il modulo su 'Attivo'.

get

Ottenere il modulo in base al nome o all'ID; genera un'eccezione se una delle due non viene fornita.

get_default

Ottenere la versione predefinita del modulo.

get_default_version

Ottenere la versione predefinita di Module.

get_versions

Ottenere tutte le versioni del modulo.

module_def_builder

Creare l'oggetto definizione del modulo che descrive il passaggio.

module_version_list

Ottenere l'elenco delle versioni del modulo.

process_source_directory

Elaborare la directory di origine per il passaggio e verificare che lo script esista.

publish

Creare un ModuleVersion e aggiungerlo al modulo corrente.

publish_adla_script

Creare un ModuleVersion basato su Azure Data Lake Analytics (ADLA) e aggiungerlo al modulo corrente.

publish_azure_batch

Creare un ModuleVersion che usa Azure batch e aggiungerlo al modulo corrente.

publish_python_script

Creare un ModuleVersion basato su uno script Python e aggiungerlo al modulo corrente.

resolve

Risolvere e restituire l'oggetto ModuleVersion corretto.

set_default_version

Impostare ModuleVersion predefinito del modulo.

set_description

Impostare la descrizione del modulo.

set_name

Impostare il nome del modulo.

create

Creare il modulo.

static create(workspace, name, description, _workflow_provider=None)

Parametri

Nome Descrizione
workspace
Necessario

Area di lavoro in cui creare il modulo.

name
Necessario
str

Nome del modulo.

description
Necessario
str

Descrizione del modulo.

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>

(Solo uso interno). Provider del flusso di lavoro.

Valore predefinito: None

Restituisce

Tipo Descrizione

Oggetto Module

deprecate

Impostare il modulo su 'Deprecato'.

deprecate()

disable

Impostare il modulo su 'Disabilitato'.

disable()

enable

Impostare il modulo su 'Attivo'.

enable()

get

Ottenere il modulo in base al nome o all'ID; genera un'eccezione se una delle due non viene fornita.

static get(workspace, module_id=None, name=None, _workflow_provider=None)

Parametri

Nome Descrizione
workspace
Necessario

Area di lavoro in cui creare il modulo.

module_id
str

ID del modulo.

Valore predefinito: None
name
str

Nome del modulo.

Valore predefinito: None
_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>

(Solo uso interno). Provider del flusso di lavoro.

Valore predefinito: None

Restituisce

Tipo Descrizione

Oggetto Module

get_default

Ottenere la versione predefinita del modulo.

get_default()

Restituisce

Tipo Descrizione

Versione predefinita del modulo.

get_default_version

Ottenere la versione predefinita di Module.

get_default_version()

Restituisce

Tipo Descrizione
str

Versione predefinita del modulo.

get_versions

Ottenere tutte le versioni del modulo.

static get_versions(workspace, name, _workflow_provider=None)

Parametri

Nome Descrizione
workspace
Necessario

L'area di lavoro in cui è stato creato il modulo.

name
Necessario
str

Nome del modulo.

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>

(Solo uso interno). Provider del flusso di lavoro.

Valore predefinito: None

Restituisce

Tipo Descrizione

Elenco di ModuleVersionDescriptor

module_def_builder

Creare l'oggetto definizione del modulo che descrive il passaggio.

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)

Parametri

Nome Descrizione
name
Necessario
str

Nome del modulo.

description
Necessario
str

Descrizione del modulo.

execution_type
Necessario
str

Tipo di esecuzione del modulo.

input_bindings
Necessario

Associazioni di input del modulo.

output_bindings
Necessario

Associazioni di output del modulo.

param_defs

Definizioni del modulo param.

Valore predefinito: None
create_sequencing_ports

Indica se le porte di sequenziazione verranno create per il modulo.

Valore predefinito: True
allow_reuse

Indica se il modulo sarà disponibile per essere riutilizzato.

Valore predefinito: True
version
str

Versione del modulo.

Valore predefinito: None
module_type
str

Tipo di modulo.

Valore predefinito: None
step_type
str

Tipo di passaggio associato a questo modulo, ad esempio "PythonScriptStep", "HyperDriveStep" e così via.

Valore predefinito: None
arguments

Elenco di argomenti annotati da usare quando si chiama questo modulo

Valore predefinito: None
runconfig
str

Runconfig che verrà usato per python_script_step

Valore predefinito: None
cloud_settings
str

Impostazioni che verranno usate per i cloud

Valore predefinito: None

Restituisce

Tipo Descrizione

Oggetto Module def.

Eccezioni

Tipo Descrizione

module_version_list

Ottenere l'elenco delle versioni del modulo.

module_version_list()

Restituisce

Tipo Descrizione

Elenco di ModuleVersionDescriptor

process_source_directory

Elaborare la directory di origine per il passaggio e verificare che lo script esista.

static process_source_directory(name, source_directory, script_name)

Parametri

Nome Descrizione
name
Necessario
str

Nome del passaggio.

source_directory
Necessario
str

Directory di origine per il passaggio.

script_name
Necessario
str

Nome dello script per il passaggio.

Restituisce

Tipo Descrizione

Directory di origine e percorsi hash.

Eccezioni

Tipo Descrizione

publish

Creare un ModuleVersion e aggiungerlo al modulo corrente.

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)

Parametri

Nome Descrizione
description
Necessario
str

Descrizione del modulo.

execution_type
Necessario
str

Tipo di esecuzione del modulo. I valori accettabili sono esCloud, adlcloud e AzureBatchCloud

inputs
Necessario

Input del modulo.

outputs
Necessario

Output del modulo.

param_defs

Definizioni dei parametri del modulo.

Valore predefinito: None
create_sequencing_ports

Indica se le porte di sequenziazione verranno create per il modulo.

Valore predefinito: True
version
str

Versione del modulo.

Valore predefinito: None
is_default

Indica se la versione pubblicata deve essere quella predefinita.

Valore predefinito: False
content_path
str

directory

Valore predefinito: None
hash_paths

Elenco di percorsi da hash durante il controllo delle modifiche apportate al contenuto del passaggio. Se non sono state rilevate modifiche, la pipeline ririuserà il contenuto del passaggio da un'esecuzione precedente. Per impostazione predefinita, il contenuto dell'oggetto source_directory viene hashed (ad eccezione dei file elencati in .amlignore o .gitignore). DEPRECATO: non più necessario.

Valore predefinito: None
category
str

Categoria della versione del modulo

Valore predefinito: None
arguments

Argomenti da usare quando si chiama il modulo. Gli argomenti possono essere stringhe, riferimenti di input (InputPortDef), riferimenti di output (OutputPortDef) e parametri della pipeline (PipelineParameter).

Valore predefinito: None
runconfig

RunConfiguration facoltativo. È possibile usare RunConfiguration per specificare requisiti aggiuntivi per l'esecuzione, ad esempio dipendenze conda e un'immagine Docker.

Valore predefinito: None

Restituisce

Tipo Descrizione

Eccezioni

Tipo Descrizione

publish_adla_script

Creare un ModuleVersion basato su Azure Data Lake Analytics (ADLA) e aggiungerlo al modulo corrente.

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)

Parametri

Nome Descrizione
script_name
Necessario
str

Nome di uno script ADLA, relativo a source_directory.

description
Necessario
str

Descrizione della versione del modulo.

inputs
Necessario

Associazioni di input del modulo.

outputs
Necessario

Associazioni di output del modulo.

params

Params ModuleVersion, come coppie nome-default_value.

Valore predefinito: None
create_sequencing_ports

Indica se le porte di sequenziazione verranno create per il modulo.

Valore predefinito: True
degree_of_parallelism
int

Grado di parallelismo da usare per questo processo.

Valore predefinito: None
priority
int

Valore della priorità da usare per il processo corrente.

Valore predefinito: None
runtime_version
str

Versione di runtime del motore azure Data Lake Analytics (ADLA).

Valore predefinito: None
compute_target

Calcolo ADLA da usare per questo processo.

Valore predefinito: None
version
str

Versione del modulo.

Valore predefinito: None
is_default

Indica se la versione pubblicata deve essere quella predefinita.

Valore predefinito: False
source_directory
str

directory

Valore predefinito: None
hash_paths

hash_paths

Valore predefinito: None
category
str

Categoria della versione del modulo

Valore predefinito: None
arguments

Argomenti da usare quando si chiama il modulo. Gli argomenti possono essere stringhe, riferimenti di input (InputPortDef), riferimenti di output (OutputPortDef) e parametri della pipeline (PipelineParameter).

Valore predefinito: None

Restituisce

Tipo Descrizione

publish_azure_batch

Creare un ModuleVersion che usa Azure batch e aggiungerlo al modulo corrente.

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)

Parametri

Nome Descrizione
description
Necessario
str

Descrizione della versione del modulo.

compute_target
Necessario
BatchCompute oppure str

Destinazione di calcolo BatchCompute.

inputs
Necessario

Associazioni di input del modulo.

outputs
Necessario

Associazioni di output del modulo.

params

Params ModuleVersion, come coppie nome-default_value.

Valore predefinito: None
create_sequencing_ports

Indica se le porte di sequenziazione verranno create per il modulo.

Valore predefinito: True
version
str

Versione del modulo.

Valore predefinito: None
is_default

Indica se la versione pubblicata deve essere quella predefinita.

Valore predefinito: False
create_pool

Indica se creare il pool prima di eseguire i processi.

Valore predefinito: False
pool_id
str

(Obbligatorio) ID del pool in cui verrà eseguito il processo.

Valore predefinito: None
delete_batch_job_after_finish

Indica se eliminare il processo dall'account Batch al termine.

Valore predefinito: False
delete_batch_pool_after_finish

Indica se eliminare il pool al termine del processo.

Valore predefinito: False
is_positive_exit_code_failure

Indica se il processo ha esito negativo se l'attività esiste con un codice positivo.

Valore predefinito: True
vm_image_urn
str

Se create_pool è True e la macchina virtuale usa VirtualMachineConfiguration, questo parametro indica l'immagine della macchina virtuale da usare. Formato valore: urn:publisher:offer:sku. Esempio: urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter.

Valore predefinito: urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter
run_task_as_admin

Indica se l'attività deve essere eseguita con privilegi di Amministrazione.

Valore predefinito: False
target_compute_nodes
int

Se create_pool è True, indica il numero di nodi di calcolo che verranno aggiunti al pool.

Valore predefinito: 1
vm_size
str

Se create_pool è True, indica le dimensioni della macchina virtuale dei nodi di calcolo.

Valore predefinito: standard_d1_v2
executable
str

Nome del comando/eseguibile che verrà eseguito come parte del processo.

Valore predefinito: None
source_directory
str

Directory di origine.

Valore predefinito: None
category
str

Categoria della versione del modulo

Valore predefinito: None
arguments

Argomenti da usare quando si chiama il modulo. Gli argomenti possono essere stringhe, riferimenti di input (InputPortDef), riferimenti di output (OutputPortDef) e parametri della pipeline (PipelineParameter).

Valore predefinito: None

Restituisce

Tipo Descrizione

Eccezioni

Tipo Descrizione

publish_python_script

Creare un ModuleVersion basato su uno script Python e aggiungerlo al modulo corrente.

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)

Parametri

Nome Descrizione
script_name
Necessario
str

Nome di uno script Python, relativo a source_directory.

description
Necessario
str

Descrizione della versione del modulo.

inputs
Necessario

Associazioni di input del modulo.

outputs
Necessario

Associazioni di output del modulo.

params

Params ModuleVersion, come coppie nome-default_value.

Valore predefinito: None
create_sequencing_ports

Indica se le porte di sequenziazione verranno create per il modulo.

Valore predefinito: True
version
str

Versione del modulo.

Valore predefinito: None
is_default

Indica se la versione pubblicata deve essere quella predefinita.

Valore predefinito: False
source_directory
str

directory

Valore predefinito: None
hash_paths

Elenco di percorsi da hash durante il controllo delle modifiche apportate al contenuto del passaggio. Se non sono state rilevate modifiche, la pipeline ririuserà il contenuto del passaggio da un'esecuzione precedente. Per impostazione predefinita, il contenuto dell'oggetto source_directory viene hashed (ad eccezione dei file elencati in .amlignore o .gitignore). DEPRECATO: non più necessario.

Valore predefinito: None
category
str

Categoria della versione del modulo

Valore predefinito: None
arguments

Argomenti da usare quando si chiama il modulo. Gli argomenti possono essere stringhe, riferimenti di input (InputPortDef), riferimenti di output (OutputPortDef) e parametri della pipeline (PipelineParameter).

Valore predefinito: None
runconfig

RunConfiguration facoltativo. È possibile usare RunConfiguration per specificare requisiti aggiuntivi per l'esecuzione, ad esempio dipendenze conda e un'immagine Docker.

Valore predefinito: None

Restituisce

Tipo Descrizione

resolve

Risolvere e restituire l'oggetto ModuleVersion corretto.

resolve(version=None)

Parametri

Nome Descrizione
version
Valore predefinito: None

Restituisce

Tipo Descrizione

Versione del modulo da usare.

set_default_version

Impostare ModuleVersion predefinito del modulo.

set_default_version(version_id)

Parametri

Nome Descrizione
version_id
Necessario

Restituisce

Tipo Descrizione
str

Versione predefinita.

Eccezioni

Tipo Descrizione

set_description

Impostare la descrizione del modulo.

set_description(description)

Parametri

Nome Descrizione
description
Necessario
str

Descrizione da impostare.

Eccezioni

Tipo Descrizione

set_name

Impostare il nome del modulo.

set_name(name)

Parametri

Nome Descrizione
name
Necessario
str

Nome da impostare.

Eccezioni

Tipo Descrizione

Attributi

default_version

Ottenere la versione predefinita del modulo.

Restituisce

Tipo Descrizione
str

Stringa di versione predefinita.

description

Ottenere la descrizione del modulo.

Restituisce

Tipo Descrizione
str

Stringa di descrizione.

id

Ottenere l'ID del modulo.

Restituisce

Tipo Descrizione
str

ID.

name

Ottenere il nome del modulo.

Restituisce

Tipo Descrizione
str

Nome.

status

Ottenere lo stato del modulo.

Restituisce

Tipo Descrizione
str

Stato.