¿Qué es el SDK de Azure Machine Learning para Python?
Los científicos de datos y los desarrolladores de inteligencia artificial usan el SDK de Azure Machine Learning para Python para crear y ejecutar flujos de trabajo de aprendizaje automático con Azure Machine Learning Service. Puede interactuar con el servicio en cualquier entorno de Python, incluidos los cuadernos de Jupyter Notebook, Visual Studio Code o su IDE de Python favorito.
Entre las áreas clave del SDK se incluyen:
- Explore, prepare y administre el ciclo de vida de los conjuntos de datos usados en los experimentos de aprendizaje automático.
- Administre los recursos en la nube para la supervisión, registro y organización de los experimentos de aprendizaje automático.
- Entrene modelos localmente o mediante recursos en la nube, incluido el entrenamiento del modelo de aceleración por GPU.
- Use el aprendizaje automático automatizado, que acepta parámetros de configuración y datos de entrenamiento. Automáticamente recorre en iteración los algoritmos y la configuración de hiperparámetros para encontrar el mejor modelo para realizar predicciones.
- Implemente servicios web para convertir los modelos entrenados en servicios RESTful que se pueden consumir en cualquier aplicación.
Para obtener instrucciones paso a paso sobre cómo empezar, pruebe el tutorial.
Las secciones siguientes contienen información general sobre algunas de las clases más importantes del SDK y modelos de diseño comunes para su uso. Para obtener el SDK, consulte la guía de instalación.
Estable frente a experimental
El SDK de Azure Machine Learning para Python proporciona características estables y experimentales en el mismo SDK.
Estado de características y funcionalidades | Descripción |
---|---|
Características estables |
Listo para producción Se recomienda usar las versiones estables en la mayoría de los casos y entornos de producción. Se actualizan con menos frecuencia que las características experimentales. |
Características experimentales |
Características de desarrollo Estas características son funcionalidades recién desarrolladas & actualizaciones que pueden no estar listas o totalmente probadas para el uso de producción. Aunque las características suelen ser funcionales, pueden incluir algunos cambios importantes. Las características experimentales se usan para eliminar los errores de interrupción del SDK y solo recibirá actualizaciones mientras dure el período de prueba. Las características experimentales también se conocen como características que se encuentran en versión preliminar. Como su nombre indica, las características experimentales (versión preliminar) se usan para experimentar y no se consideran libre de errores ni estables. Ese es el motivo por el que solo recomendamos usar las características experimentales a los usuarios avanzados que quieran probar las versiones iniciales de las funcionalidades y actualizaciones, y que tengan la intención de informar de los errores y problemas que aparezcan. |
Las características experimentales se etiquetan mediante una sección de nota en la referencia del SDK y se indican mediante texto, como (versión preliminar) en toda la documentación de Azure Machine Learning.
Área de trabajo
Espacio de nombres: azureml.core.workspace.Workspace
La clase Workspace
es un recurso básico de la nube que se usa para experimentar, entrenar e implementar modelos de aprendizaje automático. Vincula la suscripción y el grupo de recursos de Azure con un objeto que se puede consumir fácilmente.
Vea todos los parámetros del método create Workspace para reutilizar las instancias existentes (Storage, Key Vault, App-Insights y Azure Container Registry-ACR), así como modificar configuraciones adicionales, como la configuración del punto de conexión privado y el destino de proceso.
Importe la clase y cree una nueva área de trabajo con el código siguiente. Establezca create_resource_group
en False
si tiene un grupo de recursos de Azure ya existente que quiera usar para el área de trabajo. Es posible que algunas funciones le soliciten credenciales de autenticación de Azure.
from azureml.core import Workspace
ws = Workspace.create(name='myworkspace',
subscription_id='<azure-subscription-id>',
resource_group='myresourcegroup',
create_resource_group=True,
location='eastus2'
)
Puede usar la misma área de trabajo en varios entornos si la escribe primero en un archivo de configuración JSON. De esta forma, se guardan los datos de la suscripción, el recurso y el nombre del área de trabajo.
ws.write_config(path="./file-path", file_name="ws_config.json")
Lea el archivo de configuración para cargar el área de trabajo.
from azureml.core import Workspace
ws_other_environment = Workspace.from_config(path="./file-path/ws_config.json")
También puede usar el método estático get()
para cargar un área de trabajo existente sin usar archivos de configuración.
from azureml.core import Workspace
ws = Workspace.get(name="myworkspace", subscription_id='<azure-subscription-id>', resource_group='myresourcegroup')
La variable ws
representa un objeto Workspace
en los siguientes ejemplos de código.
Experimento
Espacio de nombres: azureml.core.experiment.Experiment
La clase Experiment
es otro recurso básico de la nube que representa una colección de pruebas (ejecuciones individuales del modelo). El código siguiente captura un objeto Experiment
desde Workspace
por nombre, o crea un nuevo objeto Experiment
si el nombre no existe.
from azureml.core.experiment import Experiment
experiment = Experiment(workspace=ws, name='test-experiment')
Ejecute el código siguiente para obtener una lista de todos los objetos Experiment
incluidos en Workspace
.
list_experiments = Experiment.list(ws)
Use la función get_runs
para recuperar una lista de objetos Run
(pruebas) de Experiment
. El código siguiente recupera las ejecuciones e imprime cada Id. de ejecución.
list_runs = experiment.get_runs()
for run in list_runs:
print(run.id)
Hay dos maneras de ejecutar una prueba de experimento. Si está experimentando de forma interactiva en un cuaderno de Jupyter Notebook, use la función start_logging
. Si va a enviar un experimento desde un entorno estándar de Python, use la función submit
. Ambas funciones devuelven un objeto Run
. La variable experiment
representa un objeto Experiment
en los siguientes ejemplos de código.
Ejecute
Espacio de nombres: azureml.core.run.Run
Una ejecución representa una prueba única de un experimento.
Run
es el objeto que se usa para supervisar la ejecución asincrónica de una prueba, almacenar su salida, analizar los resultados y obtener acceso a los artefactos generados. Puede usar Run
dentro del código de experimentación para registrar las métricas y artefactos en el servicio del historial de ejecución. Entre las funcionalidades se incluyen:
- Almacenar y recuperar métricas y datos.
- Usar etiquetas y la jerarquía de elementos secundarios para facilitar la búsqueda de ejecuciones anteriores.
- Registrar los archivos de modelo almacenados para la implementación.
- Almacenar, modificar y recuperar propiedades de una ejecución.
Para crear un objeto Run
, envíe un objeto Experiment
con un objeto de configuración de ejecución. Use el parámetro tags
para agregar categorías y etiquetas personalizadas a las ejecuciones. Puede buscarlos y recuperarlos fácilmente más tarde desde Experiment
.
tags = {"prod": "phase-1-model-tests"}
run = experiment.submit(config=your_config_object, tags=tags)
Use la función estática list
para obtener una lista de todos los objetos Run
de Experiment
. Especifique el parámetro tags
para filtrar según la etiqueta creada anteriormente.
from azureml.core.run import Run
filtered_list_runs = Run.list(experiment, tags=tags)
Use la función get_details
para recuperar el resultado detallado de la ejecución.
run_details = run.get_details()
La salida de esta función es un diccionario que incluye lo siguiente:
- Ejecutar identificador
- Estado
- Hora de inicio y finalización
- Destino de proceso (local frente a en la nube)
- Dependencias y versiones usadas en la ejecución
- Datos específicos del entrenamiento (varían según el tipo de modelo)
Para obtener más ejemplos de cómo configurar y supervisar las ejecuciones, consulte la guía de procedimiento.
Modelo
Espacio de nombres: azureml.core.model.Model
La clase Model
se usa para trabajar con representaciones en la nube de modelos de aprendizaje automático. Los métodos le ayudan a transferir modelos entre entornos de desarrollo locales y el objeto Workspace
en la nube.
Puede usar el registro del modelo para almacenar y controlar las versiones de los modelos en la nube de Azure, en su área de trabajo. Los modelos registrados se identifican por el nombre y la versión. Cada vez que registra un modelo con el mismo nombre que uno existente, el registro incrementa la versión. Azure Machine Learning admite todos los modelos que se pueden cargar mediante Python 3, no solo los modelos de Azure Machine Learning.
En el ejemplo siguiente se muestra cómo crear un modelo de clasificación local simple con scikit-learn
, registrar el modelo en Workspace
y descargarlo desde la nube.
Cree un clasificador simple (clf
) para predecir el abandono de clientes en función de su edad. A continuación, vuelque el modelo en un archivo .pkl
del mismo directorio.
from sklearn import svm
import joblib
import numpy as np
# customer ages
X_train = np.array([50, 17, 35, 23, 28, 40, 31, 29, 19, 62])
X_train = X_train.reshape(-1, 1)
# churn y/n
y_train = ["yes", "no", "no", "no", "yes", "yes", "yes", "no", "no", "yes"]
clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(X_train, y_train)
joblib.dump(value=clf, filename="churn-model.pkl")
Use la función register
para registrar el modelo en el área de trabajo. Especifique la ruta de acceso del modelo local y el nombre del modelo. Si registra el mismo nombre más de una vez, se creará una nueva versión.
from azureml.core.model import Model
model = Model.register(workspace=ws, model_path="churn-model.pkl", model_name="churn-model-test")
Ahora que el modelo está registrado en el área de trabajo, es fácil administrar, descargar y organizar los modelos. Para recuperar un objeto de modelos (por ejemplo, en otro entorno) de Workspace
, use el constructor de clase y especifique el nombre del modelo y los parámetros opcionales. A continuación, use la función download
para descargar el modelo, incluida la estructura de carpetas de la nube.
from azureml.core.model import Model
import os
model = Model(workspace=ws, name="churn-model-test")
model.download(target_dir=os.getcwd())
Use la función delete
para quitar el modelo de Workspace
.
model.delete()
Una vez que tiene un modelo registrado, implementarlo como un servicio web es un proceso sencillo. Primero, cree y registre una imagen. En este paso se configura el entorno de Python y sus dependencias, junto con un script para definir los formatos de la respuesta y solicitud de servicio web. Después de crear una imagen, cree una configuración de implementación que establezca los parámetros de memoria y núcleos de CPU para el destino de proceso. A continuación, adjunte la imagen.
ComputeTarget, RunConfiguration y ScriptRunConfig
Espacio de nombres: azureml.core.compute.ComputeTarget
Espacio de nombres: azureml.core.runconfig.RunConfiguration
Espacio de nombres: azureml.core.script_run_config.ScriptRunConfig
La clase ComputeTarget
es la clase primaria abstracta para crear y administrar los destinos de proceso. Un destino de proceso representa una variedad de recursos en los que puede entrenar los modelos de Machine Learning. Un destino de proceso puede ser una máquina local o un recurso en la nube, como una instancia de proceso de Azure Machine Learning, Azure HDInsight o una máquina virtual remota.
Use los destinos de proceso para aprovechar máquinas virtuales eficaces para el entrenamiento del modelo y configure destinos de proceso persistentes o destinos invocados en tiempo de ejecución temporales. Para obtener una guía completa sobre la configuración y administración de destinos de proceso, consulte la guía de procedimiento.
En el código siguiente se muestra un ejemplo sencillo de configuración de un destino AmlCompute
(clase secundaria de ComputeTarget
). Este destino crea un recurso de proceso remoto en tiempo de ejecución en el objeto Workspace
. El recurso se escala automáticamente cuando se envía un trabajo. Se elimina automáticamente cuando finaliza la ejecución.
Reutilice el modelo de abandono de clientes simple de scikit-learn
y compílelo como el archivo train.py
en el directorio actual. Al final del archivo, cree un nuevo directorio llamado outputs
. En este paso se crea un directorio en la nube (el área de trabajo) para almacenar el modelo entrenado que serializó el método joblib.dump()
.
# train.py
from sklearn import svm
import numpy as np
import joblib
import os
# customer ages
X_train = np.array([50, 17, 35, 23, 28, 40, 31, 29, 19, 62])
X_train = X_train.reshape(-1, 1)
# churn y/n
y_train = ["yes", "no", "no", "no", "yes", "yes", "yes", "no", "no", "yes"]
clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(X_train, y_train)
os.makedirs("outputs", exist_ok=True)
joblib.dump(value=clf, filename="outputs/churn-model.pkl")
A continuación, cree una instancia del objeto RunConfiguration
y establezca su tipo y tamaño para crear el destino de proceso. En este ejemplo se usa el tamaño de recursos más pequeño (1 núcleo de CPU, 3,5 GB de memoria). La variable list_vms
contiene una lista de las máquinas virtuales admitidas y sus tamaños.
from azureml.core.runconfig import RunConfiguration
from azureml.core.compute import AmlCompute
list_vms = AmlCompute.supported_vmsizes(workspace=ws)
compute_config = RunConfiguration()
compute_config.target = "amlcompute"
compute_config.amlcompute.vm_size = "STANDARD_D1_V2"
Cree dependencias para el entorno de Python del recurso de proceso remoto con la clase CondaDependencies
. El archivo train.py
usa scikit-learn
y numpy
, que deben instalarse en el entorno. También puede especificar las versiones de las dependencias. Use el objeto dependencies
para establecer el entorno en compute_config
.
from azureml.core.conda_dependencies import CondaDependencies
dependencies = CondaDependencies()
dependencies.add_pip_package("scikit-learn")
dependencies.add_pip_package("numpy==1.15.4")
compute_config.environment.python.conda_dependencies = dependencies
Ahora está listo para enviar el experimento. Use la clase ScriptRunConfig
para asociar la configuración del destino de proceso y para especificar la ruta de acceso o el archivo del script de entrenamiento train.py
. Para enviar el experimento, especifique el parámetro config
de la función submit()
. Llame a wait_for_completion
en la ejecución resultante para ver el resultado de la ejecución asincrónica a medida que se inicializa el entorno y se entrena el modelo.
Advertencia
A continuación se muestran limitaciones en torno a caracteres específicos cuando se usan en parámetros ScriptRunConfig
:
- Los caracteres
"
,$
,;
y\
tienen escape por el back-end, ya que se consideran caracteres reservados para separar comandos bash. - Los caracteres
(
,)
,%
,!
,^
,<
,>
,&
y|
tienen escape para ejecuciones locales en Windows.
from azureml.core.experiment import Experiment
from azureml.core import ScriptRunConfig
script_run_config = ScriptRunConfig(source_directory=os.getcwd(), script="train.py", run_config=compute_config)
experiment = Experiment(workspace=ws, name="compute_target_test")
run = experiment.submit(config=script_run_config)
run.wait_for_completion(show_output=True)
Una vez finalizada la ejecución, el archivo de modelo entrenado churn-model.pkl
estará disponible en el área de trabajo.
Entorno
Espacio de nombres: azureml.core.environment
Los entornos de Azure Machine Learning especifican los paquetes, las variables de entorno y la configuración de software de Python que rodean a los scripts de entrenamiento y puntuación. Además de Python, también puede configurar PySpark, Docker y R para entornos. Internamente, los entornos producen imágenes de Docker que se usan para ejecutar los procesos de entrenamiento y puntuación en el destino de proceso. Los entornos son entidades administradas y con control de versiones en el área de trabajo de Machine Learning que permiten flujos de trabajo de aprendizaje automático reproducibles, auditables y portátiles en distintos destinos y tipos de proceso.
Puede utilizar un objeto Environment
para:
- Desarrollar el script de aprendizaje.
- Reutilizar el mismo entorno en el Proceso de Azure Machine Learning para el entrenamiento del modelo a escala.
- Implementar el modelo con ese mismo entorno sin estar vinculado a un tipo de proceso específico.
El código siguiente importa la clase Environment
del SDK y crea instancias de un objeto de entorno.
from azureml.core.environment import Environment
Environment(name="myenv")
Agregue paquetes a un entorno con los archivos de Conda, pip o Private Wheel. Especifique cada dependencia del paquete mediante la clase CondaDependency
para agregarla a la sección PythonSection
del entorno.
En el ejemplo siguiente se agrega al entorno. Agrega la versión 1.17.0 de numpy
. También agrega el paquete pillow
al entorno, myenv
. En el ejemplo se usan el método add_conda_package()
y el método add_pip_package()
, respectivamente.
from azureml.core.environment import Environment
from azureml.core.conda_dependencies import CondaDependencies
myenv = Environment(name="myenv")
conda_dep = CondaDependencies()
# Installs numpy version 1.17.0 conda package
conda_dep.add_conda_package("numpy==1.17.0")
# Installs pillow package
conda_dep.add_pip_package("pillow")
# Adds dependencies to PythonSection of myenv
myenv.python.conda_dependencies=conda_dep
Para enviar una ejecución de entrenamiento, debe combinar el entorno, el destino de proceso y el script de Python de entrenamiento en una configuración de ejecución. Esta configuración es un objeto contenedor que se usa para enviar ejecuciones.
Cuando envía una ejecución de entrenamiento, la compilación de un nuevo entorno puede tardar varios minutos. La duración depende del tamaño de las dependencias necesarias. Los entornos se almacenan en caché en el servicio. Por tanto, siempre y cuando la definición del entorno permanezca inalterada, incurrirá en el tiempo de configuración completo una sola vez.
A continuación se proporciona un ejemplo en el que se usaría ScriptRunConfig
como objeto contenedor.
from azureml.core import ScriptRunConfig, Experiment
from azureml.core.environment import Environment
exp = Experiment(name="myexp", workspace = ws)
# Instantiate environment
myenv = Environment(name="myenv")
# Add training script to run config
runconfig = ScriptRunConfig(source_directory=".", script="train.py")
# Attach compute target to run config
runconfig.run_config.target = "local"
# Attach environment to run config
runconfig.run_config.environment = myenv
# Submit run
run = exp.submit(runconfig)
Si no especifica un entorno en la configuración de ejecución antes de enviar la ejecución, se crea un entorno predeterminado de manera automática.
Consulte la sección Implementación de modelo para usar entornos para implementar un servicio web.
Canalización y PythonScriptStep
Espacio de nombres: azureml.pipeline.core.pipeline.Pipeline
Espacio de nombres: azureml.pipeline.steps.python_script_step.PythonScriptStep
Una canalización de Azure Machine Learning es un flujo de trabajo automatizado de una tarea de aprendizaje automático completa. Las subtareas se encapsulan como una serie de pasos en la canalización. Una canalización de Azure Machine Learning puede ser tan simple como un paso que realiza una llamada a un script de Python. Las canalizaciones incluyen funcionalidades para lo siguiente:
- La preparación de datos, incluida la importación, validación y limpieza, manipulación y transformación, normalización y almacenamiento provisional.
- La configuración del entrenamiento, incluida la parametrización de argumentos, rutas de archivos y configuraciones de registros o informes.
- El entrenamiento y la validación de manera eficaz y repetida, lo que podría incluir la especificación de subconjuntos de datos específicos, distintos recursos de proceso de hardware, procesamiento distribuido y supervisión del progreso.
- La implementación, incluido el control de versiones, escalado, aprovisionamiento y control de acceso.
- La publicación de una canalización en un punto de conexión REST para volver a ejecutarla desde cualquier biblioteca HTTP.
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. El siguiente código es un ejemplo sencillo de PythonScriptStep
. Para obtener un ejemplo de un script de train.py
, consulte la subsección correspondiente del tutorial .
from azureml.pipeline.steps import PythonScriptStep
train_step = 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
)
Después de crear como mínimo un paso, los pasos se pueden vincular y publicarse como una canalización automatizada simple.
from azureml.pipeline.core import Pipeline
pipeline = Pipeline(workspace=ws, steps=[train_step])
pipeline_run = experiment.submit(pipeline)
Para obtener un ejemplo completo de cómo crear un flujo de trabajo de canalización, siga el tutorial avanzado.
Patrón para crear y usar canalizaciones
Una canalización de Azure Machine Learning está asociada a un área de trabajo de Azure Machine Learning y un paso de la canalización está asociado a un destino de proceso disponible dentro de esa área de trabajo. Para obtener más información, consulte este artículo sobre las áreas de trabajo o esta explicación sobre los destinos de proceso.
El siguiente es un patrón común para los pasos de canalización:
- Especifique el área de trabajo, proceso y almacenamiento.
- Configure los datos de entrada y salida mediante
- Dataset, que da acceso a un almacén de datos de Azure existente.
- PipelineDataset , que encapsula datos tabulares con tipo.
- PipelineData , que se usa para los datos intermedios de archivos o directorios escritos por un paso y pensados para que los consuma otro.
- Defina uno o más pasos de canalización.
- Cree una instancia de una canalización mediante el área de trabajo y los pasos.
- Cree un experimento al que enviar la canalización.
- Supervise los resultados del experimento.
Este cuaderno es un buen ejemplo de este patrón. trabajo
Para obtener más información acerca de las canalizaciones de Azure Machine Learning y, en particular, cómo difieren de otros tipos de canalizaciones, consulte este artículo.
AutoMLConfig
Espacio de nombres: azureml.train.automl.automlconfig.AutoMLConfig
Use la clase AutoMLConfig
para configurar los parámetros para el entrenamiento de aprendizaje automático automatizado. El aprendizaje automático automatizado recorre en iteración muchas combinaciones de algoritmos de aprendizaje automático y configuraciones de hiperparámetros. A continuación, busca el modelo perfecto en función de la métrica de precisión elegida. La configuración permite especificar lo siguiente:
- Tipo de tarea (clasificación, regresión o previsión).
- Número de iteraciones de algoritmo y tiempo máximo por iteración.
- Métrica de precisión que se va a optimizar.
- Algoritmos para la lista de bloqueados/permitidos
- Número de validaciones cruzadas.
- Destinos de proceso
- Datos de aprendizaje.
Nota
Use el extra automl
en su instalación para hacer uso del aprendizaje automático automatizado.
Para obtener guías detalladas y ejemplos de configuración de los experimentos de aprendizaje automático, consulte el tutorial y la guía de procedimiento.
El código siguiente muestra cómo crear un objeto de configuración de aprendizaje automático automatizado para un modelo de clasificación y cómo usarlo cuando se envía un experimento.
from azureml.train.automl import AutoMLConfig
automl_config = AutoMLConfig(task="classification",
X=your_training_features,
y=your_training_labels,
iterations=30,
iteration_timeout_minutes=5,
primary_metric="AUC_weighted",
n_cross_validations=5
)
Use el objeto automl_config
para enviar un experimento.
from azureml.core.experiment import Experiment
experiment = Experiment(ws, "automl_test_experiment")
run = experiment.submit(config=automl_config, show_output=True)
Después de enviarlo, el resultado muestra la precisión del entrenamiento para cada iteración a medida que la finaliza. Una vez finalizada la ejecución, se devuelve un objeto AutoMLRun
(que amplía la clase Run
). Para obtener el modelo perfecto, use la función get_output()
para devolver un objeto Model
.
best_model = run.get_output()
y_predict = best_model.predict(X_test)
Implementación de modelo
Espacio de nombres: azureml.core.model.InferenceConfig
Espacio de nombres: azureml.core.webservice.webservice.Webservice
La clase InferenceConfig
es para las opciones de configuración que describen el entorno necesario para hospedar el modelo y el servicio web.
Webservice
es la clase primaria abstracta para crear e implementar servicios web para los modelos. Para obtener una guía detallada sobre la preparación de la implementación de modelo y la implementación de servicios web, consulte esta guía de procedimiento.
Puede usar entornos al implementar el modelo como servicio web. Los entornos permiten un flujo de trabajo reproducible y conectado en el que puede implementar el modelo mediante las mismas bibliotecas en los procesos de entrenamiento e inferencia. Internamente, los entornos se implementan como imágenes de Docker. Puede usar las imágenes proporcionadas por Microsoft, o bien usar sus propias imágenes de Docker personalizadas. Si antes usaba la clase ContainerImage
para la implementación, consulte la clase DockerSection
para realizar un flujo de trabajo similar con entornos.
Para implementar un servicio web, combine el entorno, el proceso de inferencia, el script de puntuación y el modelo registrado en el objeto de implementación, deploy()
.
En el ejemplo siguiente, se supone que ya ha completado una ejecución de entrenamiento con el entorno myenv
y desea implementar ese modelo en Azure Container Instances.
from azureml.core.model import InferenceConfig, Model
from azureml.core.webservice import AciWebservice, Webservice
# Register the model to deploy
model = run.register_model(model_name = "mymodel", model_path = "outputs/model.pkl")
# Combine scoring script & environment in Inference configuration
inference_config = InferenceConfig(entry_script="score.py",
environment=myenv)
# Set deployment configuration
deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1,
memory_gb = 1)
# Define the model, inference, & deployment configuration and web service name and location to deploy
service = Model.deploy(workspace = ws,
name = "my_web_service",
models = [model],
inference_config = inference_config,
deployment_config = deployment_config)
En este ejemplo se crea un servicio web de Azure Container Instances, que es mejor para las pruebas a pequeña escala y las implementaciones rápidas. Para implementar el modelo como un servicio web de escala de producción, use Azure Kubernetes Service (AKS). Para obtener más información, consulte Clase AksCompute.
Dataset
Espacio de nombres: azureml.core.dataset.Dataset
Espacio de nombres: azureml.data.file_dataset.FileDataset
Espacio de nombres: azureml.data.tabular_dataset.TabularDataset
La clase Dataset
es un recurso fundamental para explorar y administrar datos dentro de Azure Machine Learning. Puede explorar los datos con estadísticas de resumen y guardar el conjunto de datos en el área de trabajo de Azure Machine Learning para obtener las funcionalidades de control de versiones y reproducibilidad. Los modelos pueden consumir fácilmente los conjuntos de datos durante el entrenamiento. Para obtener ejemplos de uso detallados, consulte la guía paso a paso.
-
TabularDataset
representa los datos en formato tabular que se crean mediante el análisis de un archivo o una lista de archivos. -
FileDataset
hace referencia a uno o varios archivos de almacenes de archivos o direcciones URL públicas.
En el ejemplo siguiente se muestra cómo crear un elemento TabularDataset que apunta a una sola ruta de acceso de un almacén de datos.
from azureml.core import Dataset
dataset = Dataset.Tabular.from_delimited_files(path = [(datastore, 'train-dataset/tabular/iris.csv')])
dataset.take(3).to_pandas_dataframe()
En el ejemplo siguiente se muestra cómo crear un elemento FileDataset
que hace referencia a varias direcciones URL de archivo.
from azureml.core.dataset import Dataset
url_paths = [
'http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz',
'http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz',
'http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz',
'http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz'
]
dataset = Dataset.File.from_files(path=url_paths)
Pasos siguientes
Pruebe estos pasos para saber cómo usar el SDK de Azure Machine Learning para Python:
Siga el tutorial para obtener información sobre cómo crear, entrenar e implementar un modelo en Python.
Consulte las clases y módulos en la documentación de referencia de este sitio con ayuda de la tabla de contenido de la izquierda.