Compartir a través de


PythonScriptStep Clase

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

Para obtener un ejemplo de 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.

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

Nombre Description
script_name
Requerido
str

[Obligatorio] Nombre de un script de Python relativo a source_directory.

name
str

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

Valor predeterminado: None
arguments

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

Valor predeterminado: None
compute_target

[Obligatorio] Destino de proceso que se va a 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").

Valor predeterminado: None
runconfig

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 runconfig predeterminado.

Valor predeterminado: None
runconfig_pipeline_params

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

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

Valor predeterminado: None
inputs

Lista de enlaces de puerto de entrada.

Valor predeterminado: None
outputs

Lista de enlaces de puerto de salida.

Valor predeterminado: None
params

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

Valor predeterminado: None
source_directory
str

Carpeta que contiene script de Python, conda env y otros recursos usados en el paso.

Valor predeterminado: None
allow_reuse

Indica si el paso debe reutilizar los resultados anteriores al volver a ejecutarse con la misma configuración. La reutilización está habilitada de forma 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 pone inmediatamente a disposición de 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.

Valor predeterminado: True
version
str

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

Valor predeterminado: None
hash_paths

EN DESUSO: ya no es necesario.

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

Valor predeterminado: None
script_name
Requerido
str

[Obligatorio] Nombre de un script de Python relativo a source_directory.

name
Requerido
str

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

arguments
Requerido
[str]

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

compute_target
Requerido

[Obligatorio] Destino de proceso que se va a 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
Requerido

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 runconfig predeterminado.

runconfig_pipeline_params
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 para esa propiedad.

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

inputs
Requerido

Lista de enlaces de puerto de entrada.

outputs
Requerido

Lista de enlaces de puerto de salida.

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

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

source_directory
Requerido
str

Carpeta que contiene script de Python, conda env y otros recursos usados en el paso.

allow_reuse
Requerido

Indica si el paso debe reutilizar los resultados anteriores al volver a ejecutarse con la misma configuración. La reutilización está habilitada de forma 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 pone inmediatamente a disposición de 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
Requerido
str

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

hash_paths
Requerido

EN DESUSO: ya no es necesario.

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

Comentarios

Un 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 para el área de trabajo. También puede usar para RunConfiguration 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 scripts y los archivos dependientes asociados al paso y especificar esa carpeta con el source_directory parámetro . 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 instantánea 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 que source_directory desencadenaría 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 obtener más información sobre este ejemplo, vea 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 una serie de tipos de entrada y salida. Entre ellas se incluyen DatasetConsumptionConfig las entradas y OutputDatasetConfig, PipelineOutputAbstractDatasety PipelineData para las entradas y salidas.

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


   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 ver ejemplos de uso de otros tipos de entrada y salida.

Métodos

create_node

Cree un nodo para PythonScriptStep y agréguelo al grafo especificado.

Este método no está pensado para usarse 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 el paso se pueda agregar a un grafo de canalización que represente el flujo de trabajo.

create_node

Cree un nodo para PythonScriptStep y agréguelo al grafo especificado.

Este método no está pensado para usarse 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 el paso se pueda agregar a un grafo de canalización que represente el flujo de trabajo.

create_node(graph, default_datastore, context)

Parámetros

Nombre Description
graph
Requerido

Objeto de grafo al que se va a agregar el nodo.

default_datastore
Requerido

Almacén de datos predeterminado.

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

Contexto del grafo.

Devoluciones

Tipo Description

Nodo creado.