ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: Python SDK azure-ai-ml v2 (الحالي)
في هذه المقالة، ستتعلم كيفية إنشاء مسار التعلم الآلي من Azure باستخدام Azure Machine Learning Python SDK v2 لإكمال مهمة تصنيف الصور التي تحتوي على ثلاث خطوات: إعداد البيانات وتدريب نموذج تصنيف الصور وتسجيل النموذج. تعمل مسارات التعلم الآلي على تحسين سير العمل الخاص بك بالسرعة وقابلية النقل وإعادة الاستخدام، حتى تتمكن من التركيز على التعلم الآلي بدلا من البنية الأساسية والأتمتة.
يدرب مسار المثال شبكة عصبية التفافية صغيرة من Keras لتصنيف الصور في مجموعة بيانات Fashion MNIST . يبدو المسار كما يلي:
في هذه المقالة، تكمل المهام التالية:
- إعداد بيانات الإدخال لمهمة البنية الأساسية لبرنامج ربط العمليات التجارية.
- إنشاء ثلاثة مكونات لإعداد البيانات وتدريب صورة وتسجيل النموذج.
- إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية من المكونات.
- احصل على حق الوصول إلى مساحة عمل تحتوي على حساب.
- إرسال مهمة البنية الأساسية لبرنامج ربط العمليات التجارية.
- راجع مخرجات المكونات والشبكة العصبية المدربة.
- (اختياري) تسجيل المكون لمزيد من إعادة الاستخدام والمشاركة داخل مساحة العمل.
إذا لم يكن لديك اشتراك Azure، فبادر بإنشاء حساب مجاني قبل البدء. جرب الإصدار المجاني أو المدفوع الخاص بـ Azure Machine Learning اليوم.
المتطلبات الأساسية
مساحة عمل للتعلم الآلي من Microsoft Azure. إذا لم يكن لديك واحد، فأكمل البرنامج التعليمي إنشاء الموارد.
بيئة Python التي قمت بتثبيت Azure Machine Learning Python SDK v2 فيها. للحصول على إرشادات التثبيت، راجع بدء الاستخدام. هذه البيئة مخصصة لتعريف موارد التعلم الآلي من Azure والتحكم فيها وهي منفصلة عن البيئة المستخدمة في وقت التشغيل للتدريب.
نسخة من مستودع الأمثلة.
لتشغيل أمثلة التدريب، قم أولا باستنساخ مستودع الأمثلة وانتقل إلى
sdk
الدليل:git clone --depth 1 https://github.com/Azure/azureml-examples cd azureml-examples/sdk
بدء جلسة عمل Python تفاعلية
تستخدم هذه المقالة Azure Machine Learning Python SDK لإنشاء مسار التعلم الآلي من Azure والتحكم فيه. تتم كتابة المقالة بناء على افتراض أنك ستقوم بتشغيل قصاصات التعليمات البرمجية بشكل تفاعلي إما في بيئة Python REPL أو دفتر ملاحظات Jupyter.
تستند هذه المقالة إلى دفتر ملاحظات image_classification_keras_minist_convnet.ipynb ، والذي يمكنك العثور عليه في sdk/python/jobs/pipelines/2e_image_classification_keras_minist_convnet
دليل مستودع أمثلة التعلم الآلي من Azure .
استيراد المكتبات المطلوبة
استيراد جميع مكتبات التعلم الآلي من Azure التي تحتاجها لهذه المقالة:
# 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
تحضير بيانات الإدخال لوظيفة خط التدفق الخاص بك
تحتاج إلى إعداد بيانات الإدخال لمسار تصنيف الصور.
Fashion MNIST هي مجموعة بيانات من صور الموضة التي تنقسم إلى 10 فئات. كل صورة هي صورة تدرج الرمادي 28 × 28. هناك 60,000 صورة تدريب و10,000 صورة اختبار. كمشكلة في تصنيف الصور، تعد Fashion MNIST أكثر تحديا من قاعدة بيانات الأرقام المكتوبة بخط اليد من MNIST الكلاسيكية. يتم توزيعه في نفس النموذج الثنائي المضغوط مثل قاعدة البيانات الرقمية الأصلية المكتوبة بخط اليد .
من خلال تحديد Input
، يمكنك إنشاء مرجع إلى موقع مصدر البيانات. تظل البيانات في موقعها الحالي، لذلك لن يتم تكبد تكلفة تخزين إضافية.
إنشاء مكونات لبناء البنية الأساسية لبرنامج ربط العمليات التجارية
يمكن تقسيم مهمة تصنيف الصور إلى ثلاث خطوات: إعداد البيانات وتدريب النموذج وتسجيل النموذج.
مكون التعلم الآلي من Azure هو جزء من التعليمات البرمجية المكتفية ذاتيا يكمل خطوة واحدة في مسار التعلم الآلي. في هذه المقالة، يمكنك إنشاء ثلاثة مكونات لمهمة تصنيف الصور:
- إعداد البيانات للتدريب واختبارها.
- تدريب شبكة عصبية لتصنيف الصور باستخدام بيانات التدريب.
- سجل النموذج باستخدام بيانات الاختبار.
لكل مكون، تحتاج إلى إكمال الخطوات التالية:
إعداد البرنامج النصي Python الذي يحتوي على منطق التنفيذ.
تعريف واجهة المكون.
أضف بيانات تعريف أخرى للمكون، بما في ذلك بيئة وقت التشغيل والأمر لتشغيل المكون.
يوضح القسم التالي كيفية إنشاء المكونات بطريقتين. بالنسبة للمكونين الأولين، يمكنك استخدام دالة Python. بالنسبة للمكون الثالث، يمكنك استخدام تعريف YAML.
إنشاء مكون إعداد البيانات
يحول المكون الأول في هذا المسار ملفات البيانات المضغوطة fashion_ds
إلى ملفين .csv، أحدهما للتدريب والآخر لتسجيل النقاط. يمكنك استخدام دالة Python لتعريف هذا المكون.
إذا كنت تتابع جنبا إلى جنب مع المثال في مستودع أمثلة التعلم الآلي من Azure، فإن الملفات المصدر متوفرة بالفعل في prep
المجلد. يحتوي هذا المجلد على ملفين لإنشاء المكون: prep_component.py
، الذي يعرف المكون، و conda.yaml
، الذي يحدد بيئة وقت التشغيل للمكون.
تعريف المكون باستخدام دالة Python
باستخدام الدالة command_component()
كمصمم، يمكنك بسهولة تحديد واجهة المكون وبيانات التعريف الخاصة به والرمز الذي سيتم تشغيله من دالة Python. سيتم تحويل كل دالة Python مزخرفة إلى مواصفة ثابتة واحدة (YAML) يمكن لخدمة خط التدفق معالجتها.
# 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()
تحدد التعليمات البرمجية السابقة مكونا باسم Prep Data
العرض باستخدام @command_component
مصمم الديكور:
name
هو المعرف الفريد للمكون.version
هو الإصدار الحالي من المكون. يمكن أن يكون للمكون إصدارات متعددة.display_name
هو اسم عرض مألوف لمكون واجهة المستخدم. إنه ليس فريدا.description
عادة ما يصف المهمة التي يمكن للمكون إكمالها.environment
يحدد بيئة وقت التشغيل للمكون. تحدد بيئة هذا المكون صورة Docker وتشير إلىconda.yaml
الملف.conda.yaml
يحتوي الملف على جميع الحزم المستخدمة للمكون:name: imagekeras_prep_conda_env channels: - defaults dependencies: - python=3.7.11 - pip=20.0 - pip: - mldesigner==0.1.0b4
تحدد الوظيفة
prepare_data_component
إدخالاً واحداً لـinput_data
ومخرجين لـtraining_data
وtest_data
.input_data
هو مسار بيانات الإدخال.training_data
وtest_data
هما مساران لبيانات الإخراج لبيانات التدريب وبيانات الاختبار.يحول المكون البيانات من
input_data
إلىtraining_data
.csv لتدريب البيانات .csvtest_data
لاختبار البيانات.
هذا هو الشكل الذي يبدو عليه المكون في واجهة مستخدم الاستوديو:
- المكون هو كتلة في الرسم البياني لخط التدفق.
-
input_data
،training_data
و، وtest_data
عبارة عن منافذ للمكون، والتي تتصل بمكونات أخرى لتدفق البيانات.
لقد أعددت الآن جميع ملفات المصدر للمكون Prep Data
.
إنشاء مكون تدريب النموذج
في هذا القسم، ستقوم بإنشاء مكون لتدريب نموذج تصنيف الصور في دالة Python، كما فعلت مع Prep Data
المكون.
نظرا لأن منطق التدريب أكثر تعقيدا، فستضع التعليمة البرمجية للتدريب في ملف Python منفصل.
الملفات المصدر لهذا المكون موجودة في train
المجلد في مستودع أمثلة التعلم الآلي من Azure. يحتوي هذا المجلد على ثلاثة ملفات لتكوين المكون:
-
train.py
يحتوي على المنطق لتدريب النموذج. -
train_component.py
يحدد واجهة المكون ويستورد الدالة الموجودة فيtrain.py
. -
conda.yaml
يحدد بيئة وقت التشغيل للمكون.
الحصول على برنامج نصي يحتوي على المنطق
train.py
يحتوي الملف على دالة Python عادية تقوم بتنفيذ المنطق لتدريب شبكة Keras العصبية لتصنيف الصور. لعرض التعليمات البرمجية ، راجع ملف train.py على GitHub.
تعريف المكون باستخدام دالة Python
بعد تحديد دالة التدريب، يمكنك استخدام @command_component
في Azure Machine Learning SDK v2 لتضمين وظيفتك كمكون يمكن استخدامه في مسارات التعلم الآلي من Azure:
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)
تعرف التعليمات البرمجية السابقة مكونا له اسم Train Image Classification Keras
العرض باستخدام @command_component
.
-
keras_train_component
تحدد الدالة إدخالا واحدا، ،input_data
لبيانات التدريب المصدر، وإدخالا واحدا،epochs
، والذي يحدد عدد العهود التي يجب استخدامها أثناء التدريب، وإخراج واحد،output_model
، والذي يحدد مسار الإخراج لملف النموذج. القيمة الافتراضية لـepochs
هي 10. منطق هذا المكون هو من الدالةtrain()
في train.py.
يحتوي مكون نموذج التدريب على تكوين أكثر تعقيدا قليلا من مكون بيانات الإعداد.
conda.yaml
يبدو كما يلي:
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
لقد أعددت الآن جميع الملفات المصدر للمكون Train Image Classification Keras
.
إنشاء مكون تسجيل النموذج
في هذا القسم، يمكنك إنشاء مكون لتسجيل النموذج المدرب عبر مواصفات YAML والبرنامج النصي.
إذا كنت تتابع جنبا إلى جنب مع المثال في مستودع أمثلة التعلم الآلي من Azure، فإن الملفات المصدر متوفرة بالفعل في score
المجلد. يحتوي هذا المجلد على ثلاثة ملفات لتكوين المكون:
-
score.py
يحتوي على التعليمات البرمجية المصدر للمكون. -
score.yaml
يحدد الواجهة والتفاصيل الأخرى للمكون. -
conda.yaml
يحدد بيئة وقت التشغيل للمكون.
الحصول على برنامج نصي يحتوي على المنطق
score.py
يحتوي الملف على دالة Python عادية تقوم بتنفيذ منطق نموذج التدريب:
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
ثلاث وسيطات سطر الأوامر: input_data
و input_model
و.output_result
يسجل البرنامج نموذج الإدخال باستخدام بيانات الإدخال ثم يقوم بإخراج النتيجة.
تعريف المكون عبر YAML
في هذا القسم، ستتعلم كيفية إنشاء مواصفات مكون بتنسيق مواصفات مكون YAML الصالح. يحدد هذا الملف المعلومات التالية:
- بيانات التعريف. الاسم واسم العرض والإصدار والنوع وما إلى ذلك.
- الواجهة المدخلات والمخرجات.
- الأمر، التعليمات البرمجية، والبيئة. الأمر والرمز والبيئة المستخدمة لتشغيل المكون.
$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
هو المعرف الفريد للمكون. اسم عرضها هوScore Image Classification Keras
. - يحتوي هذا المكون على مدخلين ومخرج واحد.
- يتم تعريف مسار التعليمات البرمجية المصدر في
code
القسم . عند تشغيل المكون في السحابة، سيتم تحميل جميع الملفات من هذا المسار كقطة للمكون. -
command
يحدد القسم الأمر الذي يجب تنفيذه عند تشغيل المكون. -
environment
يحتوي القسم على صورة Docker وملف conda YAML. الملف المصدر موجود في نموذج المستودع.
لديك الآن جميع الملفات المصدر لمكون تسجيل النموذج.
تحميل المكونات لإنشاء مسار
يمكنك استيراد مكون إعداد البيانات ومكون تدريب النموذج، والتي يتم تعريفها بواسطة وظائف Python، تماما مثل وظائف Python العادية.
تستورد التعليمات البرمجية prepare_data_component()
التالية الدالتين و keras_train_component()
من prep_component.py
الملف في prep
المجلد والملف train_component
في train
المجلد، على التوالي.
%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)
يمكنك استخدام الدالة load_component()
لتحميل مكون النتيجة، الذي يتم تعريفه بواسطة YAML.
# load component function from yaml
keras_score_component = load_component(source="./score/score.yaml")
بناء خط التدفق الخاص بك
لقد قمت بإنشاء وتحميل جميع المكونات وبيانات الإدخال لإنشاء البنية الأساسية لبرنامج ربط العمليات التجارية. يمكنك الآن إنشاءها في البنية الأساسية لبرنامج ربط العمليات التجارية:
ملاحظه
لاستخدام الحوسبة بلا خادم، أضف from azure.ai.ml.entities import ResourceConfiguration
إلى أعلى الملف.
ثم استبدل:
-
default_compute=cpu_compute_target
معdefault_compute="serverless"
. -
train_node.compute = gpu_compute_target
معtrain_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)
يحتوي المسار على حساب cpu_compute_target
افتراضي . إذا لم تحدد حسابا لعقدة معينة، تشغيل هذه العقدة على الحساب الافتراضي.
يحتوي المسار على إدخال على مستوى البنية الأساسية لبرنامج ربط العمليات التجارية، pipeline_input_data
. يمكنك تعيين قيمة لإدخال البنية الأساسية لبرنامج ربط العمليات التجارية عند إرسال مهمة البنية الأساسية لبرنامج ربط العمليات التجارية.
يحتوي المسار على ثلاث عقد: prepare_data_node
و train_node
و.score_node
يستخدم
input_data
لـprepare_data_node
قيمةpipeline_input_data
.من
input_data
train_node
هوtraining_data
إخراجprepare_data_node
.من
input_data
هو إخراج ، وinput_model
هو منtrain_node
output_model
.prepare_data_node
test_data
score_node
نظرا لتدريب
train_node
نموذج CNN، يمكنك تحديد حسابه كgpu_compute_target
. يمكن أن يؤدي القيام بذلك إلى تحسين أداء التدريب.
إرسال وظيفة خط التدفق الخاص بك
الآن بعد أن قمت بإنشاء البنية الأساسية لبرنامج ربط العمليات التجارية، يمكنك إرسال المهمة إلى مساحة العمل الخاصة بك. لإرسال مهمة، تحتاج أولا إلى الاتصال بمساحة عمل.
الوصول إلى مساحة العمل الخاصة بك
تكوين بيانات الاعتماد
ستستخدم DefaultAzureCredential
للوصول إلى مساحة العمل.
DefaultAzureCredential
يجب أن يكون قادراً على التعامل مع معظم سيناريوهات مصادقة Azure SDK.
إذا DefaultAzureCredential
لم يعمل لك، فشاهد مثال تكوين بيانات الاعتماد هذاوحزمة الهوية.
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()
الحصول على مقبض لمساحة عمل تحتوي على حساب
إنشاء كائن MLClient
لإدارة خدمات التعلم الآلي من Azure. إذا كنت تستخدم حساب بلا خادم، فلن تحتاج إلى إنشاء هذه الحسابات.
# 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))
هام
تتوقع قصاصة التعليمات البرمجية هذه حفظ ملف JSON لتكوين مساحة العمل في الدليل الحالي أو الأصل الخاص به. لمزيد من المعلومات حول إنشاء مساحة عمل، راجع إنشاء موارد مساحة العمل . لمزيد من المعلومات حول حفظ التكوين في ملف، راجع إنشاء ملف تكوين مساحة عمل.
إرسال مهمة المسار إلى مساحة العمل
الآن بعد أن أصبح لديك مقبض لمساحة العمل الخاصة بك، يمكنك إرسال مهمة البنية الأساسية لبرنامج ربط العمليات التجارية:
pipeline_job = ml_client.jobs.create_or_update(
pipeline_job, experiment_name="pipeline_samples"
)
pipeline_job
ترسل التعليمات البرمجية السابقة مهمة مسار تصنيف الصور هذه إلى تجربة تسمى pipeline_samples
. يقوم تلقائيا بإنشاء التجربة إذا لم تكن موجودة.
pipeline_input_data
يستخدم fashion_ds
.
تكتمل الدعوة لإرسال التجربة بسرعة. ينتج إخراجا مشابها لهذا:
التجربه | اسم | النوع | الحالة | صفحة التفاصيل |
---|---|---|---|---|
pipeline_samples |
sharp_pipe_4gvqx6h1fb | خط انابيب | اعداد | الارتباط بأستوديو Azure Machine Learning. |
يمكنك مراقبة تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية عن طريق تحديد الارتباط. أو يمكنك حظره حتى يكتمل عن طريق تشغيل هذه التعليمة البرمجية:
# wait until the job completes
ml_client.jobs.stream(pipeline_job.name)
هام
يستغرق تشغيل المسار الأول حوالي 15 دقيقة. يتم تنزيل جميع التبعيات، وإنشاء صورة Docker، وتوفير بيئة Python وإنشاءها. يستغرق تشغيل المسار مرة أخرى وقتًا أقل بكثير لأنه يتم إعادة استخدام هذه الموارد بدلًا من إنشائها. ومع ذلك، يعتمد إجمالي وقت التشغيل للبنية الأساسية لبرنامج ربط العمليات التجارية على حمل عمل البرامج النصية والعمليات التي تعمل في كل خطوة مسار.
التحقق من المخرجات وتصحيح مسارك في واجهة المستخدم
يمكنك تحديد Link to Azure Machine Learning studio
، وهي صفحة تفاصيل المهمة للبنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك. سترى الرسم البياني للبنية الأساسية لبرنامج ربط العمليات التجارية:
يمكنك التحقق من سجلات ومخرجات كل مكون بالنقر بزر الماوس الأيمن فوق المكون، أو تحديد المكون لفتح جزء التفاصيل الخاص به. لمعرفة المزيد حول كيفية تصحيح البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك في واجهة المستخدم، راجع استخدام استوديو التعلم الآلي من Azure لتصحيح أخطاء البنية الأساسية لبرنامج ربط العمليات التجارية.
(اختياري) تسجيل المكونات في مساحة العمل
في القسم السابق، قمت بإنشاء مسار باستخدام ثلاثة مكونات لإكمال مهمة تصنيف الصور. يمكنك أيضا تسجيل المكونات في مساحة العمل بحيث يمكن مشاركتها وإعادة استخدامها داخل مساحة العمل. يوضح المثال التالي كيفية تسجيل مكون إعداد البيانات:
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)
يمكنك استخدام ml_client.components.get()
للحصول على مكون مسجل حسب الاسم والإصدار. يمكنك استخدام ml_client.components.create_or_update()
لتسجيل مكون تم تحميله مسبقا من دالة Python أو YAML.
الخطوات التالية
- لمزيد من الأمثلة حول كيفية إنشاء خطوط التدفق باستخدام SDK للتعلم الآلي، راجع مثال المستودع.
- للحصول على معلومات حول استخدام واجهة مستخدم الاستوديو لإرسال مسار وتصحيحه، راجع إنشاء وتشغيل مسارات التعلم الآلي باستخدام المكونات مع استوديو التعلم الآلي من Azure.
- للحصول على معلومات حول استخدام Azure Machine Learning CLI لإنشاء المكونات والتدفقات، راجع إنشاء وتشغيل مسارات التعلم الآلي باستخدام المكونات باستخدام Azure Machine Learning CLI.
- للحصول على معلومات حول نشر البنية الأساسية لبرنامج ربط العمليات التجارية في الإنتاج باستخدام نقاط نهاية الدفعة، راجع كيفية نشر المسارات مع نقاط نهاية الدفعة.