Zelfstudie: Een Azure Machine Learning-pijplijn bouwen voor afbeeldingsclassificatie
VAN TOEPASSING OP: Python SDK azureml v1
Notitie
Zie Zelfstudie: ML-pijplijnen gebruiken voor productie-ML-werkstromen met Python SDK v2 in een Jupyter Notebook voor een zelfstudie waarin SDK v2 wordt gebruikt om een pijplijn te bouwen.
In deze zelfstudie leert u hoe u een Azure Machine Learning-pijplijn bouwt om gegevens voor te bereiden en een machine learning-model te trainen. Machine Learning-pijplijnen optimaliseren uw werkstroom met snelheid, draagbaarheid en hergebruik, zodat u zich kunt concentreren op machine learning in plaats van op infrastructuur en automatisering.
In het voorbeeld wordt een klein Keras-convolutionele neurale netwerk getraind om afbeeldingen te classificeren in de Fashion MNIST-gegevensset .
In deze zelfstudie voert u de volgende taken uit:
- Werkruimte configureren
- Een experiment maken om uw werk vast te houden
- Een ComputeTarget inrichten om het werk uit te voeren
- Een gegevensset maken waarin gecomprimeerde gegevens worden opgeslagen
- Een pijplijnstap maken om de gegevens voor te bereiden op training
- Een runtime-omgeving definiëren waarin training moet worden uitgevoerd
- Een pijplijnstap maken om het neurale netwerk te definiëren en de training uit te voeren
- Een pijplijn samenstellen vanuit de pijplijnstappen
- De pijplijn uitvoeren in het experiment
- Bekijk de uitvoer van de stappen en het getrainde neurale netwerk
- Het model registreren voor verder gebruik
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint. Probeer vandaag nog de gratis of betaalde versie van Azure Machine Learning.
Vereisten
- Voltooi Resources maken om aan de slag te gaan als u nog geen Azure Machine Learning-werkruimte hebt.
- Een Python-omgeving waarin u zowel de als de
azureml-core
azureml-pipeline
pakketten hebt geïnstalleerd. Deze omgeving is bedoeld voor het definiëren en beheren van uw Azure Machine Learning-resources en is gescheiden van de omgeving die tijdens runtime wordt gebruikt voor training.
Belangrijk
Momenteel is python 3.8 compatibel met azureml-pipeline
de meest recente Python-release. Als u problemen ondervindt bij het installeren van het azureml-pipeline
pakket, controleert u of dit python --version
een compatibele release is. Raadpleeg de documentatie van uw virtuele Python-omgevingsmanager (venv
, conda
enzovoort) voor instructies.
Een interactieve Python-sessie starten
In deze zelfstudie wordt de Python SDK voor Azure Machine Learning gebruikt om een Azure Machine Learning-pijplijn te maken en te beheren. In de zelfstudie wordt ervan uitgegaan dat u de codefragmenten interactief uitvoert in een Python REPL-omgeving of een Jupyter-notebook.
- Deze zelfstudie is gebaseerd op het
image-classification.ipynb
notebook in depython-sdk/tutorial/using-pipelines
map van de opslagplaats azure Machine Learning-voorbeelden . De broncode voor de stappen zelf bevindt zich in dekeras-mnist-fashion
submap.
Importtypen
Importeer alle Azure Machine Learning-typen die u nodig hebt voor deze zelfstudie:
import os
import azureml.core
from azureml.core import (
Workspace,
Experiment,
Dataset,
Datastore,
ComputeTarget,
Environment,
ScriptRunConfig
)
from azureml.data import OutputFileDatasetConfig
from azureml.core.compute import AmlCompute
from azureml.core.compute_target import ComputeTargetException
from azureml.pipeline.steps import PythonScriptStep
from azureml.pipeline.core import Pipeline
# check core SDK version number
print("Azure Machine Learning SDK Version: ", azureml.core.VERSION)
De Versie van de Azure Machine Learning SDK moet 1.37 of hoger zijn. Als dat niet het is, voert u een upgrade uit met pip install --upgrade azureml-core
.
Werkruimte configureren
Maak een werkruimteobject op basis van de bestaande Azure Machine Learning-werkruimte.
workspace = Workspace.from_config()
Belangrijk
Dit codefragment verwacht dat de werkruimteconfiguratie wordt opgeslagen in de huidige of de bovenliggende map. Zie Werkruimteresources maken voor meer informatie over het maken van een werkruimte. Zie Een configuratiebestand voor een werkruimte maken voor meer informatie over de configuratie als bestand opslaan.
De infrastructuur voor uw pijplijn maken
Maak een Experiment
object om de resultaten van de pijplijnuitvoeringen op te slaan:
exp = Experiment(workspace=workspace, name="keras-mnist-fashion")
Maak een ComputeTarget
resource die de machineresource vertegenwoordigt waarop uw pijplijn wordt uitgevoerd. Het eenvoudige neurale netwerk dat in deze zelfstudie wordt gebruikt, traint in slechts een paar minuten, zelfs op een CPU-computer. Als u een GPU wilt gebruiken voor training, stelt u deze in use_gpu
op True
. Het inrichten van een rekendoel duurt over het algemeen ongeveer vijf minuten.
use_gpu = False
# choose a name for your cluster
cluster_name = "gpu-cluster" if use_gpu else "cpu-cluster"
found = False
# Check if this compute target already exists in the workspace.
cts = workspace.compute_targets
if cluster_name in cts and cts[cluster_name].type == "AmlCompute":
found = True
print("Found existing compute target.")
compute_target = cts[cluster_name]
if not found:
print("Creating a new compute target...")
compute_config = AmlCompute.provisioning_configuration(
vm_size= "STANDARD_NC6" if use_gpu else "STANDARD_D2_V2"
# vm_priority = 'lowpriority', # optional
max_nodes=4,
)
# Create the cluster.
compute_target = ComputeTarget.create(workspace, cluster_name, compute_config)
# Can poll for a minimum number of nodes and for a specific timeout.
# If no min_node_count is provided, it will use the scale settings for the cluster.
compute_target.wait_for_completion(
show_output=True, min_node_count=None, timeout_in_minutes=10
)
# For a more detailed view of current AmlCompute status, use get_status().print(compute_target.get_status().serialize())
Notitie
Gpu-beschikbaarheid is afhankelijk van het quotum van uw Azure-abonnement en van de Azure-capaciteit. Raadpleeg Quota voor resources beheren en verhogen met Azure Machine Learning.
Een gegevensset maken voor de op Azure opgeslagen gegevens
Fashion-MNIST is een gegevensset met modeafbeeldingen die zijn onderverdeeld in 10 klassen. Elke afbeelding is een afbeelding van 28x28 grijswaarden en er zijn 60.000 trainings- en 10.000 testafbeeldingen. Als probleem met afbeeldingsclassificatie is Fashion-MNIST moeilijker dan de klassieke met de hand geschreven MNIST-database. Het wordt gedistribueerd in dezelfde gecomprimeerde binaire vorm als de oorspronkelijke handgeschreven cijferdatabase .
Als u een Dataset
gegevens wilt maken die verwijst naar de webgegevens, voert u het volgende uit:
data_urls = ["https://data4mldemo6150520719.blob.core.windows.net/demo/mnist-fashion"]
fashion_ds = Dataset.File.from_files(data_urls)
# list the files referenced by fashion_ds
print(fashion_ds.to_path())
Deze code wordt snel voltooid. De onderliggende gegevens blijven aanwezig in de Azure-opslagresource die is opgegeven in de data_urls
matrix.
De pijplijnstap voor gegevensvoorbereiding maken
Met de eerste stap in deze pijplijn worden de gecomprimeerde gegevensbestanden fashion_ds
geconverteerd naar een gegevensset in uw eigen werkruimte die bestaat uit CSV-bestanden die klaar zijn voor gebruik in de training. Zodra ze zijn geregistreerd bij de werkruimte, hebben uw medewerkers toegang tot deze gegevens voor hun eigen analyse, training, enzovoort
datastore = workspace.get_default_datastore()
prepared_fashion_ds = OutputFileDatasetConfig(
destination=(datastore, "outputdataset/{run-id}")
).register_on_complete(name="prepared_fashion_ds")
De bovenstaande code geeft een gegevensset op die is gebaseerd op de uitvoer van een pijplijnstap. De onderliggende verwerkte bestanden worden in de blobopslag van het standaardgegevensarchief van de werkruimte geplaatst op het pad dat is opgegeven in destination
. De gegevensset wordt geregistreerd in de werkruimte met de naam prepared_fashion_ds
.
De bron van de pijplijnstap maken
De code die u tot nu toe hebt uitgevoerd, heeft Azure-resources gemaakt en beheerd. Nu is het tijd om code te schrijven die de eerste stap in het domein uitvoert.
Als u het voorbeeld in de opslagplaats Azure Machine Learning-voorbeelden volgt, is het bronbestand al beschikbaar als keras-mnist-fashion/prepare.py
.
Als u helemaal opnieuw werkt, maakt u een submap met de naam keras-mnist-fashion/
. Maak een nieuw bestand, voeg de volgende code eraan toe en geef het bestand prepare.py
een naam.
# prepare.py
# Converts MNIST-formatted files at the passed-in input path to a passed-in output path
import os
import sys
# Conversion routine for MNIST binary format
def convert(imgf, labelf, outf, n):
f = open(imgf, "rb")
l = open(labelf, "rb")
o = open(outf, "w")
f.read(16)
l.read(8)
images = []
for i in range(n):
image = [ord(l.read(1))]
for j in range(28 * 28):
image.append(ord(f.read(1)))
images.append(image)
for image in images:
o.write(",".join(str(pix) for pix in image) + "\n")
f.close()
o.close()
l.close()
# The MNIST-formatted source
mounted_input_path = sys.argv[1]
# The output directory at which the outputs will be written
mounted_output_path = sys.argv[2]
# Create the output directory
os.makedirs(mounted_output_path, exist_ok=True)
# Convert the training data
convert(
os.path.join(mounted_input_path, "mnist-fashion/train-images-idx3-ubyte"),
os.path.join(mounted_input_path, "mnist-fashion/train-labels-idx1-ubyte"),
os.path.join(mounted_output_path, "mnist_train.csv"),
60000,
)
# Convert the test data
convert(
os.path.join(mounted_input_path, "mnist-fashion/t10k-images-idx3-ubyte"),
os.path.join(mounted_input_path, "mnist-fashion/t10k-labels-idx1-ubyte"),
os.path.join(mounted_output_path, "mnist_test.csv"),
10000,
)
De code bevat prepare.py
twee opdrachtregelargumenten: de eerste wordt toegewezen mounted_input_path
aan en de tweede aan mounted_output_path
. Als deze submap niet bestaat, wordt de aanroep om deze te os.makedirs
maken. Vervolgens converteert het programma de trainings- en testgegevens en voert het de door komma's gescheiden bestanden uit naar de mounted_output_path
.
De pijplijnstap opgeven
Voer in de Python-omgeving die u gebruikt om de pijplijn op te geven deze code uit om een PythonScriptStep
voor uw voorbereidingscode te maken:
script_folder = "./keras-mnist-fashion"
prep_step = PythonScriptStep(
name="prepare step",
script_name="prepare.py",
# On the compute target, mount fashion_ds dataset as input, prepared_fashion_ds as output
arguments=[fashion_ds.as_named_input("fashion_ds").as_mount(), prepared_fashion_ds],
source_directory=script_folder,
compute_target=compute_target,
allow_reuse=True,
)
De aanroep om aan te PythonScriptStep
geven dat wanneer de pijplijnstap wordt uitgevoerd:
- Alle bestanden in de
script_folder
map worden geüpload naar decompute_target
- Onder de geüploade bronbestanden wordt het bestand
prepare.py
uitgevoerd - De
fashion_ds
gegevenssets enprepared_fashion_ds
gegevenssets worden gekoppeld aan decompute_target
en worden weergegeven als mappen - Het pad naar de
fashion_ds
bestanden is het eerste argument voorprepare.py
. Inprepare.py
, dit argument is toegewezen aanmounted_input_path
- Het pad naar het
prepared_fashion_ds
is het tweede argument voorprepare.py
. Inprepare.py
, dit argument is toegewezen aanmounted_output_path
- Omdat
allow_reuse
dit isTrue
, wordt het pas opnieuw uitgevoerd als de bronbestanden of invoer zijn gewijzigd - Deze
PythonScriptStep
naam krijgt de naamprepare step
Modulariteit en hergebruik zijn belangrijke voordelen van pijplijnen. Azure Machine Learning kan automatisch de wijzigingen in de broncode of gegevensset bepalen. De uitvoer van een stap die niet wordt beïnvloed, wordt opnieuw gebruikt zonder de stappen opnieuw uit te voeren als allow_reuse
dat het is True
. Als een stap afhankelijk is van een gegevensbron buiten Azure Machine Learning die kan veranderen (bijvoorbeeld een URL die verkoopgegevens bevat), wordt ingesteld allow_reuse
False
op en wordt de pijplijnstap uitgevoerd telkens wanneer de pijplijn wordt uitgevoerd.
De trainingsstap maken
Zodra de gegevens zijn geconverteerd van de gecomprimeerde indeling naar CSV-bestanden, kunnen deze worden gebruikt voor het trainen van een convolutionele neurale netwerk.
De bron van de trainingsstap maken
Met grotere pijplijnen is het een goed idee om de broncode van elke stap in een afzonderlijke map (src/prepare/
, src/train/
enzovoort) te plaatsen, maar voor deze zelfstudie hoeft u alleen het bestand train.py
in dezelfde keras-mnist-fashion/
bronmap te gebruiken of te maken.
import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras.layers.normalization import BatchNormalization
from keras.utils import to_categorical
from keras.callbacks import Callback
import numpy as np
import pandas as pd
import os
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from azureml.core import Run
# dataset object from the run
run = Run.get_context()
dataset = run.input_datasets["prepared_fashion_ds"]
# split dataset into train and test set
(train_dataset, test_dataset) = dataset.random_split(percentage=0.8, seed=111)
# load dataset into pandas dataframe
data_train = train_dataset.to_pandas_dataframe()
data_test = test_dataset.to_pandas_dataframe()
img_rows, img_cols = 28, 28
input_shape = (img_rows, img_cols, 1)
X = np.array(data_train.iloc[:, 1:])
y = to_categorical(np.array(data_train.iloc[:, 0]))
# here we split validation data to optimiza classifier during training
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=13)
# test data
X_test = np.array(data_test.iloc[:, 1:])
y_test = to_categorical(np.array(data_test.iloc[:, 0]))
X_train = (
X_train.reshape(X_train.shape[0], img_rows, img_cols, 1).astype("float32") / 255
)
X_test = X_test.reshape(X_test.shape[0], img_rows, img_cols, 1).astype("float32") / 255
X_val = X_val.reshape(X_val.shape[0], img_rows, img_cols, 1).astype("float32") / 255
batch_size = 256
num_classes = 10
epochs = 10
# construct neuron network
model = Sequential()
model.add(
Conv2D(
32,
kernel_size=(3, 3),
activation="relu",
kernel_initializer="he_normal",
input_shape=input_shape,
)
)
model.add(MaxPooling2D((2, 2)))
model.add(Dropout(0.25))
model.add(Conv2D(64, (3, 3), activation="relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Conv2D(128, (3, 3), activation="relu"))
model.add(Dropout(0.4))
model.add(Flatten())
model.add(Dense(128, activation="relu"))
model.add(Dropout(0.3))
model.add(Dense(num_classes, activation="softmax"))
model.compile(
loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.Adam(),
metrics=["accuracy"],
)
# start an Azure ML run
run = Run.get_context()
class LogRunMetrics(Callback):
# callback at the end of every epoch
def on_epoch_end(self, epoch, log):
# log a value repeated which creates a list
run.log("Loss", log["loss"])
run.log("Accuracy", log["accuracy"])
history = model.fit(
X_train,
y_train,
batch_size=batch_size,
epochs=epochs,
verbose=1,
validation_data=(X_val, y_val),
callbacks=[LogRunMetrics()],
)
score = model.evaluate(X_test, y_test, verbose=0)
# log a single value
run.log("Final test loss", score[0])
print("Test loss:", score[0])
run.log("Final test accuracy", score[1])
print("Test accuracy:", score[1])
plt.figure(figsize=(6, 3))
plt.title("Fashion MNIST with Keras ({} epochs)".format(epochs), fontsize=14)
plt.plot(history.history["accuracy"], "b-", label="Accuracy", lw=4, alpha=0.5)
plt.plot(history.history["loss"], "r--", label="Loss", lw=4, alpha=0.5)
plt.legend(fontsize=12)
plt.grid(True)
# log an image
run.log_image("Loss v.s. Accuracy", plot=plt)
# create a ./outputs/model folder in the compute target
# files saved in the "./outputs" folder are automatically uploaded into run history
os.makedirs("./outputs/model", exist_ok=True)
# serialize NN architecture to JSON
model_json = model.to_json()
# save model JSON
with open("./outputs/model/model.json", "w") as f:
f.write(model_json)
# save model weights
model.save_weights("./outputs/model/model.h5")
print("model saved in ./outputs/model folder")
De meeste van deze code moeten bekend zijn bij ML-ontwikkelaars:
- De gegevens worden gepartitioneerd in trainings- en validatiesets en een afzonderlijke testsubset voor de definitieve score
- De invoershape is 28x28x1 (slechts 1 omdat de invoer grijswaarden is), er zullen 256 invoer in een batch zijn en er zijn 10 klassen
- Het aantal trainingstijdvakken is 10
- Het model heeft drie convolutionele lagen, met maximale pooling en dropout, gevolgd door een dichte laag en softmax-kop
- Het model is geschikt voor 10 epochs en vervolgens geëvalueerd
- De modelarchitectuur wordt geschreven naar
outputs/model/model.json
en de gewichtenoutputs/model/model.h5
Sommige code is echter specifiek voor Azure Machine Learning. run = Run.get_context()
haalt een Run
object op dat de huidige servicecontext bevat. De train.py
bron gebruikt dit run
object om de invoergegevensset op te halen via de naam (een alternatief voor de code in prepare.py
die de gegevensset heeft opgehaald via de argv
matrix met scriptargumenten).
Het run
object wordt ook gebruikt voor het vastleggen van de voortgang van de training aan het einde van elk tijdvak en, aan het einde van de training, om de grafiek van verlies en nauwkeurigheid in de loop van de tijd te registreren.
De stap voor de trainingspijplijn maken
De trainingsstap heeft een iets complexere configuratie dan de voorbereidingsstap. De voorbereidingsstap heeft alleen standaard Python-bibliotheken gebruikt. Meestal moet u de runtime-omgeving wijzigen waarin uw broncode wordt uitgevoerd.
Maak een bestand conda_dependencies.yml
met de volgende inhoud:
dependencies:
- python=3.7
- pip:
- azureml-core
- azureml-dataset-runtime
- keras==2.4.3
- tensorflow==2.4.3
- numpy
- scikit-learn
- pandas
- matplotlib
De Environment
klasse vertegenwoordigt de runtime-omgeving waarin een machine learning-taak wordt uitgevoerd. Koppel de bovenstaande specificatie aan de trainingscode met:
keras_env = Environment.from_conda_specification(
name="keras-env", file_path="./conda_dependencies.yml"
)
train_cfg = ScriptRunConfig(
source_directory=script_folder,
script="train.py",
compute_target=compute_target,
environment=keras_env,
)
Het maken van de trainingsstap zelf maakt gebruik van code die vergelijkbaar is met de code die wordt gebruikt om de voorbereidingsstap te maken:
train_step = PythonScriptStep(
name="train step",
arguments=[
prepared_fashion_ds.read_delimited_files().as_input(name="prepared_fashion_ds")
],
source_directory=train_cfg.source_directory,
script_name=train_cfg.script,
runconfig=train_cfg.run_config,
)
De pijplijn maken en uitvoeren
Nu u gegevensinvoer en uitvoer hebt opgegeven en de stappen van uw pijplijn hebt gemaakt, kunt u deze samenstellen in een pijplijn en deze uitvoeren:
pipeline = Pipeline(workspace, steps=[prep_step, train_step])
run = exp.submit(pipeline)
Het Pipeline
object dat u maakt, wordt uitgevoerd in uw workspace
en bestaat uit de voorbereidings- en trainingsstappen die u hebt opgegeven.
Notitie
Deze pijplijn heeft een eenvoudige afhankelijkheidsgrafiek: de trainingsstap is afhankelijk van de voorbereidingsstap en de voorbereidingsstap is afhankelijk van de fashion_ds
gegevensset. Productiepijplijnen hebben vaak veel complexere afhankelijkheden. Stappen kunnen afhankelijk zijn van meerdere upstream-stappen, een broncodewijziging in een vroege stap kan verregaande gevolgen hebben, enzovoort. Azure Machine Learning houdt deze problemen voor u bij. U hoeft alleen de matrix van steps
door te geven en Azure Machine Learning zorgt ervoor dat de uitvoeringsgrafiek wordt berekend.
De aanroep van de Experiment
bewerking submit
wordt snel voltooid en produceert uitvoer die vergelijkbaar is met:
Submitted PipelineRun 5968530a-abcd-1234-9cc1-46168951b5eb
Link to Azure Machine Learning Portal: https://ml.azure.com/runs/abc-xyz...
U kunt de pijplijnuitvoering controleren door de koppeling te openen of u kunt blokkeren totdat deze is voltooid door het volgende uit te voeren:
run.wait_for_completion(show_output=True)
Belangrijk
De eerste pijplijnuitvoering duurt ongeveer 15 minuten. Alle afhankelijkheden moeten worden gedownload, een Docker-kopie wordt gemaakt en de Python-omgeving wordt ingericht en gemaakt. Het opnieuw uitvoeren van de pijplijn vergt aanzienlijk minder tijd, omdat deze resources opnieuw worden gebruikt in plaats van worden gemaakt. De totale runtime voor de pijplijn is echter afhankelijk van de werkbelasting van uw scripts en de processen die in elke pijplijnstap worden uitgevoerd.
Zodra de pijplijn is voltooid, kunt u de metrische gegevens ophalen die u hebt geregistreerd in de trainingsstap:
run.find_step_run("train step")[0].get_metrics()
Als u tevreden bent met de metrische gegevens, kunt u het model registreren in uw werkruimte:
run.find_step_run("train step")[0].register_model(
model_name="keras-model",
model_path="outputs/model/",
datasets=[("train test data", fashion_ds)],
)
Resources opschonen
Voltooi deze sectie niet als u van plan bent andere Azure Machine Learning-zelfstudies uit te voeren.
Het rekenproces stoppen
Als u een rekenproces hebt gebruikt, stopt u de VM wanneer u deze niet gebruikt om de kosten te verlagen.
Selecteer in uw werkruimte Compute.
Selecteer in de lijst de naam van het rekenproces.
Selecteer Stoppen.
Wanneer u klaar bent om de server opnieuw te gebruiken, selecteert u Starten.
Alles verwijderen
Als u niet van plan bent om gebruik te maken van de resources die u hebt gemaakt, kunt u ze verwijderen zodat er geen kosten voor in rekening worden gebracht:
- Selecteer Resourcegroepen in het linkermenu van de Azure-portal.
- Selecteer in de lijst met resourcegroepen de resourcegroep die u hebt gemaakt.
- Selecteer Resourcegroep verwijderen.
- Voer de naam van de resourcegroup in. Selecteer vervolgens Verwijderen.
U kunt de resourcegroep ook bewaren en slechts één werkruimte verwijderen. Bekijk de eigenschappen van de werkruimte en selecteer vervolgens Verwijderen.
Volgende stappen
In deze zelfstudie hebt u de volgende typen gebruikt:
- De
Workspace
vertegenwoordiging van uw Azure Machine Learning-werkruimte. Het bevat:- De
Experiment
resultaten van trainingsuitvoeringen van uw pijplijn - De
Dataset
gegevens die lui zijn geladen in het Fashion-MNIST-gegevensarchief - De
ComputeTarget
machine(s) waarop de pijplijnstappen worden uitgevoerd - Dit
Environment
is de runtime-omgeving waarin de pijplijnstappen worden uitgevoerd - De
Pipeline
stappen die dePythonScriptStep
stappen in een geheel vormen - De
Model
registratie nadat u tevreden bent over het trainingsproces
- De
Het Workspace
object bevat verwijzingen naar andere resources (notebooks, eindpunten, enzovoort) die niet in deze zelfstudie zijn gebruikt. Zie Wat is een Azure Machine Learning-werkruimte?
De OutputFileDatasetConfig
uitvoer van een uitvoering naar een gegevensset op basis van bestanden wordt gepromoot. Zie Hoe u toegang hebt tot gegevens voor meer informatie over gegevenssets en het werken met gegevens.
Zie Wat zijn rekendoelen in Azure Machine Learning? en wat zijn Azure Machine Learning-omgevingen voor meer informatie over rekendoelen en omgevingen?
Hiermee ScriptRunConfig
worden een ComputeTarget
en Environment
met Python-bronbestanden gekoppeld. A PythonScriptStep
neemt dat ScriptRunConfig
en definieert de invoer en uitvoer, die in deze pijplijn de bestandsgegevensset is die is gebouwd door de OutputFileDatasetConfig
.
Zie de voorbeeldopslagplaats voor meer voorbeelden van het bouwen van pijplijnen met behulp van de Machine Learning SDK.