PythonScriptStep Clase

Crea un paso de canalización de Azure ML que ejecuta el script de Python.

Para un ejemplo del uso de PythonScriptStep, consulte el cuaderno https://aka.ms/pl-get-started.

Cree un paso de canalización de Azure ML que ejecute el script de Python.

Herencia
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
PythonScriptStep

Constructor

PythonScriptStep(script_name, name=None, arguments=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None, hash_paths=None)

Parámetros

script_name
str
Requerido

[Obligatorio] El nombre de un script de Python relativo a source_directory.

name
str
valor predeterminado: None

Nombre del paso. Si no se especifica, se usa script_name.

arguments
list
valor predeterminado: None

Argumentos de línea de comandos para el archivo de script de Python. Los argumentos se pasarán al proceso a través del parámetro arguments en RunConfiguration. Para obtener más información sobre cómo controlar argumentos como símbolos especiales, consulte RunConfiguration.

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
valor predeterminado: None

[Obligatorio] Destino de proceso que se usará. Si no se especifica, se usará el destino de runconfig. Este parámetro se puede especificar como un objeto de destino de proceso o el nombre de cadena de un destino de proceso en el área de trabajo. Opcionalmente, si el destino de proceso no está disponible en el momento de la creación de la canalización, puede especificar una tupla de ("nombre de destino de proceso", "tipo de destino de proceso") para evitar capturar el objeto de destino de proceso (el tipo AmlCompute es "AmlCompute" y el tipo RemoteCompute es "VirtualMachine").

runconfig
RunConfiguration
valor predeterminado: None

Clase RunConfiguration opcional que se va a usar. Se puede usar RunConfiguration para especificar requisitos adicionales para la ejecución, como las dependencias de Conda y una imagen de Docker. Si no se especifica, se creará un valor predeterminado de runconfig.

runconfig_pipeline_params
dict[str, PipelineParameter]
valor predeterminado: None

Invalida las propiedades runconfig en tiempo de ejecución mediante pares clave-valor, cada uno con el nombre de la propiedad runconfig y PipelineParameter de esa propiedad.

Valores admitidos: "NodeCount", "MpiProcessCountPerNode", "TensorflowWorkerCount", "TensorflowParameterServerCount"

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
valor predeterminado: None

Una lista de enlaces de puerto de salida.

params
dict
valor predeterminado: None

Un diccionario de pares nombre-valor registrados como variables de entorno con "AML_PARAMETER_".

source_directory
str
valor predeterminado: None

Carpeta que contiene el script de Python, el entorno Conda y otros recursos que se usan en el paso.

allow_reuse
bool
valor predeterminado: True

Indica si el paso debe volver a usar los resultados anteriores cuando se ejecuta con la misma configuración o entrada. La reutilización está habilitada de manera predeterminada. Si el contenido del paso (scripts o dependencias), así como las entradas y los parámetros permanecen sin cambios, se reutiliza la salida de la ejecución anterior de este paso. Al volver a usar el paso, en lugar de enviar el trabajo al proceso, los resultados de la ejecución anterior se hacen disponibles inmediatamente para los pasos posteriores. Si usa conjuntos de datos de Azure Machine Learning como entradas, la reutilización viene determinada por si la definición del conjunto de datos ha cambiado, no por si los datos subyacentes han cambiado.

version
str
valor predeterminado: None

Una etiqueta de versión opcional para indicar un cambio en la funcionalidad del paso.

hash_paths
list
valor predeterminado: None

EN DESUSO: ya no es necesario.

Una lista de rutas de acceso a hash al comprobar si hay cambios en el contenido del paso. Si no se detecta ningún cambio, la canalización reutilizará el contenido del paso de una ejecución anterior. De forma predeterminada, se aplica un algoritmo hash al contenido de source_directory, excepto los archivos enumerados en .amlignore o .gitignore.

script_name
str
Requerido

[Obligatorio] El nombre de un script de Python relativo a source_directory.

name
str
Requerido

Nombre del paso. Si no se especifica, se usa script_name.

arguments
[str]
Requerido

Argumentos de línea de comandos para el archivo de script de Python. Los argumentos se pasarán al proceso a través del parámetro arguments en RunConfiguration. Para obtener más información sobre cómo controlar argumentos como símbolos especiales, consulte RunConfiguration.

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
Requerido

[Obligatorio] Destino de proceso que se usará. Si no se especifica, se usará el destino de runconfig. Este parámetro se puede especificar como un objeto de destino de proceso o el nombre de cadena de un destino de proceso en el área de trabajo. Opcionalmente, si el destino de proceso no está disponible en el momento de la creación de la canalización, puede especificar una tupla de ("nombre de destino de proceso", "tipo de destino de proceso") para evitar capturar el objeto de destino de proceso (el tipo AmlCompute es "AmlCompute" y el tipo RemoteCompute es "VirtualMachine").

runconfig
RunConfiguration
Requerido

Clase RunConfiguration opcional que se va a usar. RunConfiguration se puede usar para especificar requisitos adicionales para la ejecución, como las dependencias de Conda y una imagen de Docker. Si no se especifica, se creará un valor predeterminado de runconfig.

runconfig_pipeline_params
dict[str, PipelineParameter]
Requerido

Invalida las propiedades runconfig en tiempo de ejecución mediante pares clave-valor, cada uno con el nombre de la propiedad runconfig y PipelineParameter de esa propiedad.

Valores admitidos: "NodeCount", "MpiProcessCountPerNode", "TensorflowWorkerCount", "TensorflowParameterServerCount"

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Requerido

Una lista de enlaces de puerto de salida.

params
<xref:<xref:{str: str}>>
Requerido

Un diccionario de pares de nombre-valor. Se registra como variables de entorno con ">>AML_PARAMETER_<<".

source_directory
str
Requerido

Carpeta que contiene el script de Python, el entorno Conda y otros recursos que se usan en el paso.

allow_reuse
bool
Requerido

Indica si el paso debe volver a usar los resultados anteriores cuando se ejecuta con la misma configuración o entrada. La reutilización está habilitada de manera predeterminada. Si el contenido del paso (scripts o dependencias), así como las entradas y los parámetros permanecen sin cambios, se reutiliza la salida de la ejecución anterior de este paso. Al volver a usar el paso, en lugar de enviar el trabajo al proceso, los resultados de la ejecución anterior se hacen disponibles inmediatamente para los pasos posteriores. Si usa conjuntos de datos de Azure Machine Learning como entradas, la reutilización viene determinada por si la definición del conjunto de datos ha cambiado, no por si los datos subyacentes han cambiado.

version
str
Requerido

Una etiqueta de versión opcional para indicar un cambio en la funcionalidad del paso.

hash_paths
list
Requerido

EN DESUSO: ya no es necesario.

Una lista de rutas de acceso a hash al comprobar si hay cambios en el contenido del paso. Si no se detecta ningún cambio, la canalización reutilizará el contenido del paso de una ejecución anterior. De forma predeterminada, se aplica un algoritmo hash al contenido de source_directory, excepto los archivos enumerados en .amlignore o .gitignore.

Comentarios

Un elemento PythonScriptStep es un paso básico integrado para ejecutar un script de Python en un destino de proceso. Toma un nombre de script y otros parámetros opcionales, como argumentos para el script, el destino de proceso, las entradas y las salidas. Si no se especifica ningún destino de proceso, se usa el destino de proceso predeterminado del área de trabajo. También puede usar RunConfiguration para especificar los requisitos de PythonScriptStep, como las dependencias de Conda y la imagen de Docker.

El procedimiento recomendado para trabajar con PythonScriptStep es usar una carpeta independiente para los scripts y los archivos dependientes asociados al paso, y especificar esa carpeta con el parámetro source_directory. Seguir este procedimiento recomendado tiene dos ventajas. En primer lugar, ayuda a reducir el tamaño de la instantánea creada para el paso porque solo se crea una instantánea de lo que se necesita para el paso. En segundo lugar, la salida del paso de una ejecución anterior se puede reutilizar si no hay ningún cambio en source_directory que desencadene una nueva carga de la instantánea.

En el ejemplo de código siguiente se muestra el uso de PythonScriptStep en un escenario de entrenamiento de aprendizaje automático. Para más información sobre este ejemplo, consulte https://aka.ms/pl-first-pipeline.


   from azureml.pipeline.steps import PythonScriptStep

   trainStep = PythonScriptStep(
       script_name="train.py",
       arguments=["--input", blob_input_data, "--output", output_data1],
       inputs=[blob_input_data],
       outputs=[output_data1],
       compute_target=compute_target,
       source_directory=project_folder
   )

PythonScriptSteps admite varios tipos de entrada y salida. Entre estos se incluye DatasetConsumptionConfig para las entradas y OutputDatasetConfig, PipelineOutputAbstractDataset y PipelineData para las entradas y salidas.

A continuación se muestra un ejemplo de uso de Dataset como entrada y salida de un paso:


   from azureml.core import Dataset
   from azureml.pipeline.steps import PythonScriptStep
   from azureml.pipeline.core import Pipeline, PipelineData

   # get input dataset
   input_ds = Dataset.get_by_name(workspace, 'weather_ds')

   # register pipeline output as dataset
   output_ds = PipelineData('prepared_weather_ds', datastore=datastore).as_dataset()
   output_ds = output_ds.register(name='prepared_weather_ds', create_new_version=True)

   # configure pipeline step to use dataset as the input and output
   prep_step = PythonScriptStep(script_name="prepare.py",
                                inputs=[input_ds.as_named_input('weather_ds')],
                                outputs=[output_ds],
                                compute_target=compute_target,
                                source_directory=project_folder)

Consulte las páginas de documentación correspondientes para obtener ejemplos del uso de otros tipos de entrada o salida.

Métodos

create_node

Cree un nodo para PythonScriptStep y agréguelo al gráfico especificado.

No se debe llamar a este método directamente. Cuando se crea una instancia de una canalización con este paso, Azure ML pasa automáticamente los parámetros necesarios a través de este método para que ese paso se pueda agregar a un gráfico de canalización que represente el flujo de trabajo.

create_node

Cree un nodo para PythonScriptStep y agréguelo al gráfico especificado.

No se debe llamar a este método directamente. Cuando se crea una instancia de una canalización con este paso, Azure ML pasa automáticamente los parámetros necesarios a través de este método para que ese paso se pueda agregar a un gráfico de canalización que represente el flujo de trabajo.

create_node(graph, default_datastore, context)

Parámetros

graph
Graph
Requerido

El objeto de grafo al que se agrega el nodo.

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Requerido

El almacén de datos predeterminado.

context
<xref:azureml.pipeline.core._GraphContext>
Requerido

El contexto del grafo.

Devoluciones

El nodo creado.

Tipo de valor devuelto