Ejecución de script de Python

Importante

El soporte técnico de Machine Learning Studio (clásico) finalizará el 31 de agosto de 2024. Se recomienda realizar la transición a Azure Machine Learning antes de esa fecha.

A partir del 1 de diciembre de 2021 no se podrán crear recursos de Machine Learning Studio (clásico). Hasta el 31 de agosto de 2024, puede seguir usando los recursos de Machine Learning Studio (clásico) existentes.

La documentación de ML Studio (clásico) se está retirando y es posible que no se actualice en el futuro.

Ejecuta un script de Python desde un experimento de Machine Learning

Categoría: Módulos de lenguaje Python

Nota

Se aplica a: solo Machine Learning Studio (clásico)

Hay módulos para arrastrar y colocar similares en el diseñador de Azure Machine Learning.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo Ejecutar script de Python en Machine Learning Studio (clásico) para ejecutar código de Python. Para más información sobre los principios de arquitectura y diseño de Python en Studio (clásico), consulte el siguiente artículo.

Con Python, puede realizar tareas que no son compatibles actualmente con módulos de Studio (clásico) existentes, como:

  • Visualizar datos mediante matplotlib
  • Usar bibliotecas de Python para enumerar los conjuntos de datos y modelos en el área de trabajo
  • Leer, cargar y manipular datos de orígenes que no admitidos por el módulo Import Data (Importar datos)

Machine Learning Studio (clásico) usa la distribución Anaconda de Python, que incluye muchas utilidades comunes para el procesamiento de datos.

Uso de Ejecutar script de Python

El módulo Ejecución de script de Python contiene código de Python de ejemplo que puede usar como punto de partida. Para configurar el módulo Ejecución de script de Python, debe proporcionar un conjunto de entradas y código de Python que se ejecutará en el cuadro de texto Python script (Script de Python).

  1. Agregue el módulo Ejecución de script de Python al experimento.

  2. Desplácese hasta la parte inferior del panel Propiedades y, en Versión de Python, seleccione la versión de las bibliotecas de Python y el entorno de ejecución que se van a usar en el script.

    • Distribución de Anaconda 2.0 para Python 2.7.7
    • Distribución de Anaconda 4.0 para Python 2.7.11
    • Distribución de Anaconda 4.0 para Python 3.5 (valor predeterminado)

    Se recomienda establecer la versión antes de escribir código nuevo. Si cambia la versión más adelante, se le pedirá que confirme el cambio.

    Importante

    Si usa varias instancias del módulo Ejecutar script de Python en el experimento, debe elegir una sola versión de Python para todos los módulos del experimento.

  3. Agregue y conéctese en Dataset1 todos los conjuntos de datos de Studio (clásico) que quiera usar para la entrada. Haga referencia a este conjunto de datos en el script de Python como DataFrame1.

    El uso de un conjunto de datos es opcional, si desea generar datos mediante Python, o usar código de Python para importar los datos directamente al módulo.

    Este módulo admite la adición de un segundo conjunto de datos de Studio (clásico) en Dataset2. Haga referencia al segundo conjunto de datos en el script de Python como DataFrame2.

    Los conjuntos de datos almacenados en Studio (clásico) se convierten automáticamente en data.frames de Pandas cuando se cargan con este módulo.

    Execute Python input map

  4. Para incluir nuevos paquetes o código de Python, agregue el archivo comprimido que contiene estos recursos personalizados a Script bundle (Agrupación de scripts). La entrada para Script bundle (Agrupación de scripts) debe ser un archivo comprimido que ya se haya cargado en el área de trabajo. Para obtener más información sobre cómo preparar y cargar estos recursos, consulte Desempaquetar datos comprimidos.

    Cualquier archivo incluido en el archivo comprimido cargado puede usarse durante la ejecución del experimento. Si el archivo incluye una estructura de directorios, se conserva la estructura, pero debe anteponerse un directorio llamado src a la ruta de acceso.

  5. En el cuadro de texto Python Script (Script de Python), escriba o pegue el script de Python válido.

    El cuadro de texto Python Script (Script de Python) se rellena previamente con algunas instrucciones de comentarios y código de ejemplo para el acceso a datos y salida. Debe editar o reemplazar este código. Asegúrese de seguir las convenciones de Python sobre la aplicación de sangría y mayúsculas y minúsculas.

    • El script debe contener una función denominada azureml_main como punto de entrada para este módulo.
    • La función de punto de entrada puede contener hasta dos argumentos de entrada: Param<dataframe1> y Param<dataframe2>
    • Los archivos comprimidos conectados al tercer puerto de entrada se descomprimen y almacenan en el directorio, .\Script Bundle, que también se agrega a sys.path de Python.

    Por lo tanto, si el archivo ZIP contiene mymodule.py, impórtelo mediante import mymodule.

    • Se puede devolver un único conjunto de datos a Studio (clásico), que debe ser una secuencia de tipo pandas.DataFrame. Puede crear otras salidas en el código de Python y escribirlas directamente en Azure Storage o crear visualizaciones mediante el dispositivo Python.
  6. Ejecute el experimento, o seleccione el módulo y haga clic en Ejecutar seleccionados para ejecutar el script de Python.

    Todos los datos y el código se cargan en una máquina virtual y se ejecutan con el entorno de Python especificado.

Results

El módulo devuelve estas salidas:

  • Conjunto de datos de resultados. Los resultados de los cálculos realizados por el código de Python insertado deben proporcionarse como data.frame de Pandas, que se convierte automáticamente en el formato del conjunto de datos de Machine Learning, de modo que pueda usar los resultados con otros módulos del experimento. El módulo se limita a un único conjunto de datos como salida. Para obtener más información, consulte Tabla de datos.

  • Dispositivo de Python.    Este resultado admite tanto la salida de la consola como la presentación de gráficos PNG con el intérprete de Python.

Cómo adjuntar recursos de script

El módulo Ejecutar script de Python admite archivos de script de Python arbitrarios como entradas, siempre que se preparen de antemano y se carguen en el área de trabajo como parte de un archivo .ZIP.

Upload un archivo ZIP que contiene código de Python en el área de trabajo

  1. En el área de experimento de Machine Learning Studio (clásico), haga clic en Conjuntos de datos y, a continuación, haga clic en Nuevo.

  2. Seleccione la opción From local file (Desde archivo local).

  3. En el cuadro de diálogo Upload un nuevo conjunto de datos, haga clic en la lista desplegable Seleccionar un tipo para el nuevo conjunto de datos y seleccione la opción Archivo Zip (.zip).

  4. Haga clic en Examinar para buscar el archivo comprimido.

  5. Escriba un nuevo nombre para su uso en el área de trabajo. El nombre que asigne al conjunto de datos se convierte en el nombre de la carpeta del área de trabajo donde se extraen los archivos contenidos.

  6. Después de cargar el paquete comprimido en Studio (clásico), compruebe que el archivo comprimido está disponible en la lista Conjuntos de datos guardados y, a continuación, conecte el conjunto de datos al puerto de entrada del conjunto de scripts.

    Todos los archivos contenidos en el archivo ZIP están disponibles para su uso durante el tiempo de ejecución: por ejemplo, datos de ejemplo, scripts o nuevos paquetes de Python.

    Si el archivo comprimido contiene bibliotecas que aún no están instaladas en Machine Learning Studio (clásico), debe instalar el paquete de biblioteca de Python como parte del script personalizado.

    Si hay una estructura de directorio presente, se conserva. Sin embargo, debe modificar el código para anteponer el directorio src a la ruta de acceso.

Depuración de código de Python

El módulo Ejecutar script de Python funciona mejor cuando el código se ha factorizado como una función con entradas y salidas claramente definidas, en lugar de una secuencia de instrucciones ejecutables relacionadas de forma flexible.

Este módulo de Python no admite características como IntelliSense y depuración. Si se produce un error en el módulo en tiempo de ejecución, puede ver algunos detalles de error en el registro de salida del módulo. Sin embargo, el seguimiento completo de la pila de Python no está disponible. Por lo tanto, se recomienda que los usuarios desarrollen y depuren sus scripts de Python en un entorno diferente y, a continuación, importen el código en el módulo.

Algunos problemas comunes que puede buscar:

  • Compruebe los tipos de datos en la trama de datos que va a devolver de azureml_main. Los errores son probables si las columnas contienen tipos de datos distintos de los tipos numéricos y las cadenas.

  • Quite los valores na del conjunto de datos mediante dataframe.dropna() la exportación desde el script de Python. Al preparar los datos, use el módulo Limpiar datos que faltan .

  • Compruebe el código incrustado para ver si hay errores de sangría y espacios en blanco. Si recibe el error "IndentationError: se esperaba un bloque con sangría", consulte estos recursos para obtener instrucciones:

Limitaciones conocidas

  • El entorno de ejecución de Python está en espacio aislado y no permite el acceso a la red ni al sistema de archivos local de forma persistente.

  • Todos los archivos guardados localmente son aislados y eliminados una vez que se finaliza el módulo. El código Python no puede tener acceso a la mayoría de los directorios de la máquina en que se ejecuta, con la excepción del directorio actual y sus subdirectorios.

    Al proporcionar un archivo comprimido como recurso, los archivos se copian del área de trabajo en el espacio de ejecución del experimento, se desempaquetan y, a continuación, se usan. Copiar y desempaquetar recursos puede consumir memoria.

  • El módulo puede generar una única trama de datos. No es posible devolver objetos arbitrarios de Python, como modelos entrenados directamente al entorno de ejecución de Studio (clásico). Sin embargo, puede escribir objetos en el almacenamiento o en el área de trabajo. Otra opción es usar pickle para serializar varios objetos en una matriz de bytes y, a continuación, devolver la matriz dentro de una trama de datos.

Ejemplos

Para obtener ejemplos de integración de scripts de Python con experimentos de Studio (clásico), consulte estos recursos en azure AI Gallery:

Consulte también

Módulos del lenguaje R