Azure Machine Learning SDK v2 ile bileşenleri kullanarak makine öğrenmesi işlem hatları oluşturma ve çalıştırma
ŞUNLAR IÇIN GEÇERLIDIR: Python SDK'sı azure-ai-ml v2 (geçerli)
Bu makalede, üç adımdan oluşan bir görüntü sınıflandırma görevini tamamlamak için Python SDK v2 kullanarak Azure Machine Learning işlem hattı oluşturmayı öğreneceksiniz: verileri hazırlama, görüntü sınıflandırma modelini eğitme ve modeli puanlama. Makine öğrenmesi işlem hatları iş akışınızı hız, taşınabilirlik ve yeniden kullanımla iyileştirerek altyapı ve otomasyon yerine makine öğrenmesine odaklanabilmenizi sağlar.
Örnek, Fashion MNIST veri kümesindeki görüntüleri sınıflandırmak için küçük bir Keras kıvrımlı sinir ağını eğitmektedir. İşlem hattı aşağıdaki gibi görünür.
Bu makalede aşağıdaki görevleri tamamlaacaksınız:
- İşlem hattı işi için giriş verilerini hazırlama
- Verileri hazırlamak, eğitmek ve puan almak için üç bileşen oluşturma
- Bileşenlerden bir İşlem Hattı oluşturma
- İşlem ile çalışma alanına erişim elde etme
- İşlem hattı işini gönderme
- Bileşenlerin ve eğitilen sinir ağının çıkışını gözden geçirin
- (İsteğe bağlı) Çalışma alanı içinde daha fazla yeniden kullanım ve paylaşım için bileşeni kaydetme
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun. Azure Machine Learning'in ücretsiz veya ücretli sürümünü bugün deneyin.
Önkoşullar
Azure Machine Learning çalışma alanınız yoksa Kaynak oluşturma öğreticisini tamamlayın.
Azure Machine Learning Python SDK v2 yüklediğiniz bir Python ortamı - yükleme yönergeleri - başlarken bölümüne bakın. Bu ortam, Azure Machine Learning kaynaklarınızı tanımlamaya ve denetlemeye yöneliktir ve eğitim için çalışma zamanında kullanılan ortamdan ayrıdır.
Örnek deposunu kopyalama
Eğitim örneklerini çalıştırmak için önce örnek deposunu kopyalayın ve dizinine
sdk
geçin:git clone --depth 1 https://github.com/Azure/azureml-examples cd azureml-examples/sdk
Etkileşimli python oturumu başlatma
Bu makalede Azure Machine Learning işlem hattı oluşturmak ve denetlemek için Azure Machine Learning için Python SDK'sı kullanılmaktadır. Makalede kod parçacıklarının etkileşimli olarak Python REPL ortamında veya Jupyter not defterinde çalıştırılacağı varsayılır.
Bu makale, Azure Machine Learning Örnekleri deposunun dizininde sdk/python/jobs/pipelines/2e_image_classification_keras_minist_convnet
bulunan image_classification_keras_minist_convnet.ipynb not defterini temel alır.
Gerekli kitaplıkları içeri aktarma
Bu makale için ihtiyacınız olan tüm Azure Machine Learning gerekli kitaplıklarını içeri aktarın:
# import required libraries
from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential
from azure.ai.ml import MLClient
from azure.ai.ml.dsl import pipeline
from azure.ai.ml import load_component
İşlem hattı işiniz için giriş verilerini hazırlama
Bu görüntü sınıflandırma işlem hattı için giriş verilerini hazırlamanız gerekir.
Fashion-MNIST, moda görüntülerinin 10 sınıfa ayrılmış bir veri kümesidir. Her görüntü 28x28 gri tonlamalı bir görüntüdür ve 60.000 eğitim ve 10.000 test görüntüsü vardır. Görüntü sınıflandırma sorunu olarak Fashion-MNIST, klasik MNIST el yazısı basamak veritabanından daha zordur. Özgün el yazısı basamak veritabanıyla aynı sıkıştırılmış ikili biçimde dağıtılır.
İhtiyacınız olacak tüm Azure Machine Learning gerekli kitaplıklarını içeri aktarın.
bir Input
tanımlayarak, veri kaynağı konumuna bir başvuru oluşturursunuz. Veriler mevcut konumunda kalır, bu nedenle ek depolama maliyeti uygulanmaz.
İşlem hattı oluşturmak için bileşenler oluşturma
Görüntü sınıflandırma görevi üç adıma ayrılabilir: verileri hazırlama, modeli eğitme ve modeli puanlama.
Azure Machine Learning bileşeni , bir makine öğrenmesi işlem hattında tek adımlık bir işlem hattı oluşturan, bağımsız bir kod parçasıdır. Bu makalede, görüntü sınıflandırma görevi için üç bileşen oluşturacaksınız:
- Eğitim ve test için veri hazırlama
- Eğitim verilerini kullanarak bir sinir ağını görüntü sınıflandırması için eğitin
- Test verilerini kullanarak modeli puanla
Her bileşen için aşağıdakileri hazırlamanız gerekir:
Yürütme mantığını içeren Python betiğini hazırlama
Bileşenin arabirimini tanımlama
Çalışma zamanı ortamı, bileşeni çalıştırmak için komut vb. dahil olmak üzere bileşenin diğer meta verilerini ekleyin.
Sonraki bölümde oluşturma bileşenleri iki farklı şekilde gösterilir: Python işlevini kullanan ilk iki bileşen ve YAML tanımını kullanan üçüncü bileşen.
Veri hazırlama bileşenini oluşturma
Bu işlem hattındaki ilk bileşen, sıkıştırılmış veri dosyalarını fashion_ds
biri eğitim, diğeri puanlama için iki csv dosyası olarak dönüştürür. Bu bileşeni tanımlamak için Python işlevini kullanacaksınız.
Azure Machine Learning örnekleri deposundaki örnekle birlikte takip ediyorsanız, kaynak dosyalar klasörde zaten kullanılabilir prep/
durumdadır. Bu klasör, bileşeni oluşturmak için iki dosya içerir: prep_component.py
bileşeni tanımlayan ve conda.yaml
bileşenin çalışma zamanı ortamını tanımlayan .
Python işlevini kullanarak bileşeni tanımlama
İşlevi dekoratör olarak kullanarak command_component()
, bir Python işlevinden yürütülecek bileşenin arabirimini, meta verilerini ve kodunu kolayca tanımlayabilirsiniz. Dekore edilmiş her Python işlevi, işlem hattı hizmetinin işleyebileceği tek bir statik belirtime (YAML) dönüştürülür.
# Converts MNIST-formatted files at the passed-in input path to training data output path and test data output path
import os
from pathlib import Path
from mldesigner import command_component, Input, Output
@command_component(
name="prep_data",
version="1",
display_name="Prep Data",
description="Convert data to CSV file, and split to training and test data",
environment=dict(
conda_file=Path(__file__).parent / "conda.yaml",
image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04",
),
)
def prepare_data_component(
input_data: Input(type="uri_folder"),
training_data: Output(type="uri_folder"),
test_data: Output(type="uri_folder"),
):
convert(
os.path.join(input_data, "train-images-idx3-ubyte"),
os.path.join(input_data, "train-labels-idx1-ubyte"),
os.path.join(training_data, "mnist_train.csv"),
60000,
)
convert(
os.path.join(input_data, "t10k-images-idx3-ubyte"),
os.path.join(input_data, "t10k-labels-idx1-ubyte"),
os.path.join(test_data, "mnist_test.csv"),
10000,
)
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()
Yukarıdaki kod, dekoratör kullanarak @command_component
görünen ada Prep Data
sahip bir bileşen tanımlar:
name
, bileşenin benzersiz tanımlayıcısıdır.version
bileşenin geçerli sürümüdür. Bir bileşenin birden çok sürümü olabilir.display_name
, kullanıcı arabirimindeki bileşenin benzersiz olmayan kolay görünen bir adıdır.description
genellikle bu bileşenin tamamlayabildiği görevi açıklar.environment
bu bileşen için çalışma zamanı ortamını belirtir. Bu bileşenin ortamı bir docker görüntüsü belirtir ve dosyaya başvururconda.yaml
.Dosya,
conda.yaml
aşağıdaki gibi bileşen için kullanılan tüm paketleri içerir:name: imagekeras_prep_conda_env channels: - defaults dependencies: - python=3.7.11 - pip=20.0 - pip: - mldesigner==0.1.0b4
prepare_data_component
işlevi için bir giriş ve vetest_data
içininput_data
training_data
iki çıkış tanımlar.input_data
giriş veri yoludur.training_data
vetest_data
eğitim verileri ve test verileri için çıkış veri yollarıdır.Bu bileşen, verilerden
input_data
eğitim verileri csv'sinetraining_data
ve test verileri csv'sindentest_data
öğesine dönüştürür.
Aşağıda, bir bileşenin stüdyo kullanıcı arabiriminde nasıl göründüğü gösterilir.
- Bileşen, işlem hattı grafiğindeki bir blokdur.
input_data
vetraining_data
test_data
, veri akışı için diğer bileşenlere bağlanan bileşenin bağlantı noktalarıdır.
Bileşen için Prep Data
tüm kaynak dosyaları hazırladınız.
Eğitim modeli bileşenini oluşturma
Bu bölümde, Python işlevinde Prep Data
görüntü sınıflandırma modelini eğiten bir bileşen oluşturacaksınız.
Fark, eğitim mantığı daha karmaşık olduğundan özgün eğitim kodunu ayrı bir Python dosyasına koyabilmenizdir.
Bu bileşenin kaynak dosyaları Azure Machine Learning örnekleri deposundaki klasörün altındadırtrain/
. Bu klasör, bileşeni oluşturmak için üç dosya içerir:
train.py
: modeli eğitmek için gerçek mantığı içerir.train_component.py
: bileşenin arabirimini tanımlar ve içindeki işlevinitrain.py
içeri aktarır.conda.yaml
: bileşenin çalışma zamanı ortamını tanımlar.
Yürütme mantığı içeren bir betik alma
Dosya train.py
, keras sinir ağını görüntü sınıflandırması için eğitmek üzere eğitim modeli mantığını gerçekleştiren normal bir Python işlevi içerir. Kodu görüntülemek için GitHub'da train.py dosyasına bakın.
Python işlevini kullanarak bileşeni tanımlama
Eğitim işlevini başarıyla tanımladıktan sonra Azure Machine Learning SDK v2'de kullanarak işlevinizi Azure Machine Learning işlem hatlarında kullanılabilen bir bileşen olarak sarmalayabilirsiniz @command_component
.
import os
from pathlib import Path
from mldesigner import command_component, Input, Output
@command_component(
name="train_image_classification_keras",
version="1",
display_name="Train Image Classification Keras",
description="train image classification with keras",
environment=dict(
conda_file=Path(__file__).parent / "conda.yaml",
image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04",
),
)
def keras_train_component(
input_data: Input(type="uri_folder"),
output_model: Output(type="uri_folder"),
epochs=10,
):
# avoid dependency issue, execution logic is in train() func in train.py file
from train import train
train(input_data, output_model, epochs)
Yukarıdaki kod, kullanarak @command_component
görünen ada Train Image Classification Keras
sahip bir bileşen tanımlar:
keras_train_component
işlevi, eğitim verilerinin geldiği bir girişiinput_data
, eğitim sırasında dönemleri belirten bir girişiepochs
ve model dosyasının çıkışını yaptığı bir çıkışıoutput_model
tanımlar. varsayılan değeriepochs
10'dur. Bu bileşenin yürütme mantığı yukarıdaki işlevindendirtrain()
train.py
.
Eğitim modeli bileşeni, prep-data bileşeninden biraz daha karmaşık bir yapılandırmaya sahiptir. conda.yaml
aşağıdaki gibidir:
name: imagekeras_train_conda_env
channels:
- defaults
dependencies:
- python=3.8
- pip=20.2
- pip:
- mldesigner==0.1.0b12
- azureml-mlflow==1.50.0
- tensorflow==2.7.0
- numpy==1.21.4
- scikit-learn==1.0.1
- pandas==1.3.4
- matplotlib==3.2.2
- protobuf==3.20.0
Bileşen için Train Image Classification Keras
tüm kaynak dosyaları hazırladınız.
Puan modeli bileşenini oluşturma
Bu bölümde, önceki bileşenler dışında, Eğitilen modeli Yaml belirtimi ve betiği aracılığıyla puanlandıracak bir bileşen oluşturacaksınız.
Azure Machine Learning örnekleri deposundaki örnekle birlikte takip ediyorsanız, kaynak dosyalar klasörde zaten kullanılabilir score/
durumdadır. Bu klasör, bileşeni oluşturmak için üç dosya içerir:
score.py
: bileşenin kaynak kodunu içerir.score.yaml
: arabirimini ve bileşenin diğer ayrıntılarını tanımlar.conda.yaml
: bileşenin çalışma zamanı ortamını tanımlar.
Yürütme mantığı içeren bir betik alma
Dosya, score.py
eğitim modeli mantığını gerçekleştiren normal bir Python işlevi içerir.
from tensorflow import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from tensorflow.keras.layers import BatchNormalization
from tensorflow.keras.utils import to_categorical
from keras.callbacks import Callback
from keras.models import load_model
import argparse
from pathlib import Path
import numpy as np
import pandas as pd
import os
import matplotlib.pyplot as plt
import mlflow
def get_file(f):
f = Path(f)
if f.is_file():
return f
else:
files = list(f.iterdir())
if len(files) == 1:
return files[0]
else:
raise Exception("********This path contains more than one file*******")
def parse_args():
# setup argparse
parser = argparse.ArgumentParser()
# add arguments
parser.add_argument(
"--input_data", type=str, help="path containing data for scoring"
)
parser.add_argument(
"--input_model", type=str, default="./", help="input path for model"
)
parser.add_argument(
"--output_result", type=str, default="./", help="output path for model"
)
# parse args
args = parser.parse_args()
# return args
return args
def score(input_data, input_model, output_result):
test_file = get_file(input_data)
data_test = pd.read_csv(test_file, header=None)
img_rows, img_cols = 28, 28
input_shape = (img_rows, img_cols, 1)
# Read test data
X_test = np.array(data_test.iloc[:, 1:])
y_test = to_categorical(np.array(data_test.iloc[:, 0]))
X_test = (
X_test.reshape(X_test.shape[0], img_rows, img_cols, 1).astype("float32") / 255
)
# Load model
files = [f for f in os.listdir(input_model) if f.endswith(".h5")]
model = load_model(input_model + "/" + files[0])
# Log metrics of the model
eval = model.evaluate(X_test, y_test, verbose=0)
mlflow.log_metric("Final test loss", eval[0])
print("Test loss:", eval[0])
mlflow.log_metric("Final test accuracy", eval[1])
print("Test accuracy:", eval[1])
# Score model using test data
y_predict = model.predict(X_test)
y_result = np.argmax(y_predict, axis=1)
# Output result
np.savetxt(output_result + "/predict_result.csv", y_result, delimiter=",")
def main(args):
score(args.input_data, args.input_model, args.output_result)
# run script
if __name__ == "__main__":
# parse args
args = parse_args()
# call main function
main(args)
score.py kodu üç komut satırı bağımsız değişkeni alır: input_data
, input_model
ve output_result
. Program giriş modelini giriş verilerini kullanarak puanlar ve ardından puanlama sonucunu döndürür.
Yaml aracılığıyla bileşen tanımlama
Bu bölümde, geçerli YAML bileşen belirtimi biçiminde bir bileşen belirtimi oluşturmayı öğreneceksiniz. Bu dosya aşağıdaki bilgileri belirtir:
- Meta veriler: ad, display_name, sürüm, tür vb.
- Arabirim: girişler ve çıkışlar
- Komut, kod ve ortam: Bileşeni çalıştırmak için kullanılan komut, kod ve ortam
$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
type: command
name: score_image_classification_keras
display_name: Score Image Classification Keras
inputs:
input_data:
type: uri_folder
input_model:
type: uri_folder
outputs:
output_result:
type: uri_folder
code: ./
command: python score.py --input_data ${{inputs.input_data}} --input_model ${{inputs.input_model}} --output_result ${{outputs.output_result}}
environment:
conda_file: ./conda.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
name
, bileşenin benzersiz tanımlayıcısıdır. Görünen adı şeklindedirScore Image Classification Keras
.- Bu bileşenin iki girişi ve bir çıkışı vardır.
- Kaynak kod yolu bölümünde tanımlanır
code
ve bileşen bulutta çalıştırıldığında, bu yoldan gelen tüm dosyalar bu bileşenin anlık görüntüsü olarak karşıya yüklenir. - bölümü,
command
bu bileşeni çalıştırırken yürütülecek komutu belirtir. - bölümü
environment
bir docker görüntüsü ve conda yaml dosyası içerir. Kaynak dosya örnek depodadır.
Artık puan modeli bileşeni için tüm kaynak dosyalarına sahipsiniz.
İşlem hattı oluşturmak için bileşenleri yükleme
Python işlevi tarafından tanımlanan hazır veri bileşeni ve eğitim modeli bileşeni için, bileşenleri normal Python işlevleri gibi içeri aktarabilirsiniz.
Aşağıdaki kodda, sırasıyla klasör altındaki dosyadan ve klasör altındaki prep
train
dosyadan prep_component.py
içeri aktarıp train_component
prepare_data_component()
keras_train_component()
işlev yaparsınız.
%load_ext autoreload
%autoreload 2
# load component function from component python file
from prep.prep_component import prepare_data_component
from train.train_component import keras_train_component
# print hint of components
help(prepare_data_component)
help(keras_train_component)
yaml tarafından tanımlanan puan bileşeni için işlevi kullanarak load_component()
yükleyebilirsiniz.
# load component function from yaml
keras_score_component = load_component(source="./score/score.yaml")
İşlem hattınızı oluşturma
Artık işlem hattını oluşturmak için tüm bileşenleri ve giriş verilerini oluşturup yüklediniz. Bunları bir işlem hattında oluşturabilirsiniz:
Not
Sunucusuz işlem kullanmak için en üste ekleyinfrom azure.ai.ml.entities import ResourceConfiguration
.
Ardından şunu değiştirin:
default_compute=cpu_compute_target,
iledefault_compute="serverless",
train_node.compute = gpu_compute_target
iletrain_node.resources = "ResourceConfiguration(instance_type="Standard_NC6s_v3",instance_count=2)
# define a pipeline containing 3 nodes: Prepare data node, train node, and score node
@pipeline(
default_compute=cpu_compute_target,
)
def image_classification_keras_minist_convnet(pipeline_input_data):
"""E2E image classification pipeline with keras using python sdk."""
prepare_data_node = prepare_data_component(input_data=pipeline_input_data)
train_node = keras_train_component(
input_data=prepare_data_node.outputs.training_data
)
train_node.compute = gpu_compute_target
score_node = keras_score_component(
input_data=prepare_data_node.outputs.test_data,
input_model=train_node.outputs.output_model,
)
# create a pipeline
pipeline_job = image_classification_keras_minist_convnet(pipeline_input_data=mnist_ds)
İşlem hattının varsayılan bir işlemi cpu_compute_target
vardır; başka bir deyişle, belirli bir düğüm için işlem belirtmezseniz, bu düğüm varsayılan işlemde çalışır.
İşlem hattının işlem hattı düzeyinde girişi pipeline_input_data
vardır. İşlem hattı işi gönderirken işlem hattı girişine değer atayabilirsiniz.
İşlem hattı üç düğüm içerir: prepare_data_node, train_node ve score_node.
input_data
,prepare_data_node
değerinipipeline_input_data
kullanır.input_data
,train_node
prepare_data_node çıkışındantraining_data
alınmaktadır.input_data
score_nodetest_data
, prepare_data_node çıkışından veinput_model
train_node'dendiroutput_model
.train_node
Bir CNN modelini eğiteceğinden, işlemini gpu_compute_target olarak belirtebilir ve bu da eğitim performansını geliştirebilir.
İşlem hattı işinizi gönderme
İşlem hattını oluşturduğunuza göre çalışma alanınıza gönderebilirsiniz. bir iş göndermek için öncelikle bir çalışma alanına bağlanmanız gerekir.
Çalışma alanınıza erişim elde etme
Kimlik bilgilerini yapılandırma
Çalışma alanına erişmek için kullanacağız DefaultAzureCredential
. DefaultAzureCredential
Azure SDK kimlik doğrulama senaryolarının çoğunu işleyebilmeli.
Sizin için işe yaramazsa daha fazla kullanılabilir kimlik bilgisi başvurusu: kimlik bilgisi örneğini yapılandırma, azure-identity başvuru belgesi.
try:
credential = DefaultAzureCredential()
# Check if given credential can get token successfully.
credential.get_token("https://management.azure.com/.default")
except Exception as ex:
# Fall back to InteractiveBrowserCredential in case DefaultAzureCredential not work
credential = InteractiveBrowserCredential()
İşlem ile çalışma alanına tanıtıcı alma
Azure Machine Learning hizmetlerini yönetmek için bir MLClient
nesne oluşturun. Sunucusuz işlem kullanıyorsanız bu işlemleri oluşturmanıza gerek yoktur.
# Get a handle to workspace
ml_client = MLClient.from_config(credential=credential)
# Retrieve an already attached Azure Machine Learning Compute.
cpu_compute_target = "cpu-cluster"
print(ml_client.compute.get(cpu_compute_target))
gpu_compute_target = "gpu-cluster"
print(ml_client.compute.get(gpu_compute_target))
Önemli
Bu kod parçacığı, çalışma alanı yapılandırma json dosyasının geçerli dizine veya üst dizinine kaydedilmesini bekler. Çalışma alanı oluşturma hakkında daha fazla bilgi için bkz . Çalışma alanı kaynakları oluşturma. Yapılandırmayı dosyaya kaydetme hakkında daha fazla bilgi için bkz . Çalışma alanı yapılandırma dosyası oluşturma.
İşlem hattı işini çalışma alanına gönderme
Artık çalışma alanınıza bir tanıtıcı edindiniz, işlem hattı işinizi gönderebilirsiniz.
pipeline_job = ml_client.jobs.create_or_update(
pipeline_job, experiment_name="pipeline_samples"
)
pipeline_job
Yukarıdaki kod bu görüntü sınıflandırma işlem hattı işini adlı pipeline_samples
denemeye gönderir. Yoksa denemeyi otomatik olarak oluşturur. pipeline_input_data
kullanırfashion_ds
.
çağrısı aşağıdakine pipeline_job
benzer bir çıkış oluşturur:
çağrısı submit
Experiment
hızla tamamlanıp şuna benzer bir çıkış oluşturur:
Deneme | Adı | Tip | Durum | Ayrıntılar Sayfası |
---|---|---|---|---|
pipeline_samples | sharp_pipe_4gvqx6h1fb | ardışık düzen | Hazırlanıyor | Azure Machine Learning stüdyosu bağlantısı. |
Bağlantıyı açarak işlem hattı çalıştırmasını izleyebilir veya şu komutu çalıştırarak tamamlanana kadar engelleyebilirsiniz:
# wait until the job completes
ml_client.jobs.stream(pipeline_job.name)
Önemli
İlk işlem hattı çalıştırması yaklaşık 15 dakika sürer. Tüm bağımlılıkların indirilmesi, bir Docker görüntüsü oluşturulması ve Python ortamının sağlanıp oluşturulması gerekir. İşlem hattının yeniden çalıştırılması önemli ölçüde daha az zaman alır çünkü bu kaynaklar oluşturulmak yerine yeniden kullanılır. Ancak, işlem hattı için toplam çalışma süresi betiklerinizin iş yüküne ve her işlem hattı adımında çalışan işlemlere bağlıdır.
Çıkışları kullanıma alma ve kullanıcı arabiriminde işlem hattınızda hata ayıklama
İşlem hattınızın iş ayrıntı sayfası olan öğesini açabilirsiniz Link to Azure Machine Learning studio
. İşlem hattı grafiğini aşağıdaki gibi görürsünüz.
Bileşene sağ tıklayarak her bileşenin günlüklerini ve çıkışlarını denetleyebilirsiniz veya bileşeni seçerek ayrıntı bölmesini açabilirsiniz. Kullanıcı arabiriminde işlem hattınızda hata ayıklama hakkında daha fazla bilgi edinmek için bkz . Hata ayıklama işlem hattı hatasını kullanma.
(İsteğe bağlı) Bileşenleri çalışma alanına kaydetme
Önceki bölümde, E2E'nin bir görüntü sınıflandırma görevini tamamlaması için üç bileşen kullanarak bir işlem hattı oluşturacaksınız. Ayrıca, çalışma alanı içinde paylaşılabilmesi ve yeniden verilmesi için bileşenleri çalışma alanınıza kaydedebilirsiniz. Aşağıda, prep-data bileşenini kaydetmeye yönelik bir örnek verilmiştir.
try:
# try get back the component
prep = ml_client.components.get(name="prep_data", version="1")
except:
# if not exists, register component using following code
prep = ml_client.components.create_or_update(prepare_data_component)
# list all components registered in workspace
for c in ml_client.components.list():
print(c)
kullanarak ml_client.components.get()
, adına ve sürümüne göre kayıtlı bir bileşen alabilirsiniz. kullanarak ml_client.components.create_or_update()
, python işlevinden veya yaml'den daha önce yüklenmiş bir bileşeni kaydedebilirsiniz.
Sonraki adımlar
- Makine öğrenmesi SDK'sını kullanarak işlem hattı oluşturma hakkında daha fazla örnek için örnek depoya bakın.
- İşlem hattınızı göndermek ve hatalarını ayıklamak için studio kullanıcı arabirimini kullanma hakkında bilgi için kullanıcı arabirimindeki bileşeni kullanarak işlem hattı oluşturma bölümüne bakın.
- Bileşenleri ve işlem hatlarını oluşturmak için Azure Machine Learning CLI'yı kullanma hakkında bilgi için CLI ile bileşen kullanarak işlem hattı oluşturma bölümüne bakın.
- Batch Uç Noktalarını kullanarak işlem hatlarını üretime dağıtma hakkında bilgi için bkz . batch uç noktalarıyla işlem hatlarını dağıtma.