إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Python SDK azure-ai-ml v2 (الحالي)
في هذه المقالة، ستتعلم كيفية إنشاء مسار التعلم الآلي من Microsoft Azure باستخدام التعلم الآلي من Microsoft Azure 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 دليل مستودع أمثلة التعلم الآلي من Microsoft 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 صورة اختبار.
import urllib3
import shutil
import gzip
import os
from pathlib import Path
from azure.ai.ml import Input
base_url = "https://azureopendatastorage.blob.core.windows.net/mnist/"
base_dir = Path("mnist")
if not base_dir.exists():
base_dir.mkdir(parents=True)
c = urllib3.PoolManager()
for target_file in [
"train-images-idx3-ubyte.gz",
"train-labels-idx1-ubyte.gz",
"t10k-images-idx3-ubyte.gz",
"t10k-labels-idx1-ubyte.gz",
]:
if (base_dir / target_file[:-3]).exists():
continue
with c.request("GET", base_url + target_file, preload_content=False) as resp, open(
base_dir / target_file, "wb"
) as out_file:
shutil.copyfileobj(resp, out_file)
resp.release_conn()
with gzip.open(base_dir / target_file, "rb") as f_in, open(
base_dir / target_file[:-3], "wb"
) as f_out:
shutil.copyfileobj(f_in, f_out)
os.unlink(base_dir / target_file)
mnist_ds = Input(path=base_dir.as_posix())
من خلال تحديد 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يحدد بيئة وقت التشغيل للمكون باستخدام ملف conda.yamlconda.yamlيحتوي الملف على جميع الحزم المستخدمة للمكون:name: imagekeras_prep_conda_env channels: - defaults dependencies: - python=3.7.11 - pip=20.0 - pip: - mldesigner==0.1.0b4prepare_data_componentتحدد الدالة مدخلا واحدا ومخرجينinput_dataلtraining_dataوtest_data-
input_dataهو مسار بيانات الإدخال -
training_dataوهيtest_dataمسارات بيانات الإخراج لبيانات التدريب وبيانات الاختبار
-
يقوم المكون بتحويل البيانات من
input_dataإلىtraining_dataملف .csv لبيانات التدريب وملفtest_data.csv لبيانات الاختبار
في واجهة مستخدم الاستوديو، يظهر مكون على النحو التالي:
- كتلة في الرسم البياني لخط أنابيب
-
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 لالتفاف وظيفتك كمكون للاستخدام في مسارات التعلم الآلي من Microsoft 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")تحميل المكونات المسجلة من مساحة العمل
ملاحظه
لتحميل المكونات المسجلة من مساحة العمل الخاصة بك، يجب عليك أولا تكوين اتصال مساحة العمل كما هو موضح في قسم الوصول إلى مساحة العمل الخاصة بك . الكائن ml_client مطلوب للعمليات التالية.
إذا كان لديك مكونات مسجلة بالفعل في مساحة العمل الخاصة بك، فيمكنك تحميلها مباشرة باستخدام الطريقة ml_client.components.get() . يكون هذا الأسلوب مفيدا عندما تريد إعادة استخدام المكونات التي تم تسجيلها مسبقا أو التي شاركها أعضاء الفريق الآخرون.
# Load a registered component by name and version
registered_component = ml_client.components.get(
name="my_registered_component",
version="1.0.0"
)
# Load the latest version of a registered component
latest_component = ml_client.components.get(
name="my_registered_component"
)
يمكنك سرد جميع المكونات المتوفرة في مساحة العمل الخاصة بك للعثور على المكونات التي تحتاجها:
# List all components in the workspace
components = ml_client.components.list()
for component in components:
print(f"Name: {component.name}, Version: {component.version}")
بمجرد التحميل ، يمكنك استخدام المكونات المسجلة في خط الأنابيب الخاص بك تماما مثل المكونات التي تم تحميلها من الملفات المحلية أو وظائف Python.
بناء خط التدفق الخاص بك
لقد قمت بإنشاء وتحميل جميع المكونات وبيانات الإدخال لإنشاء البنية الأساسية لبرنامج ربط العمليات التجارية. يمكنك الآن إنشاءها في البنية الأساسية لبرنامج ربط العمليات التجارية:
ملاحظه
لاستخدام الحوسبة بلا خادم، أضف 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_nodepipeline_input_data - من
input_datatrain_nodeهو ناتجtraining_dataprepare_data_node - من
input_datascore_nodeهو ناتجtest_dataprepare_data_node، و هو منinput_modeloutput_modeltrain_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 | خط انابيب | اعداد | ارتباط إلى استوديو التعلم الآلي من Microsoft Azure |
يمكنك مراقبة تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية عن طريق تحديد الارتباط. أو يمكنك الانتظار حتى يكتمل عن طريق تشغيل هذا الرمز:
# 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 للتعلم الآلي، راجع مثال المستودع
- للحصول على معلومات حول استخدام واجهة مستخدم الاستوديو لإرسال مسار وتصحيح أخطاءه، راجع إنشاء مسارات التعلم الآلي وتشغيلها باستخدام المكونات باستخدام استوديو التعلم الآلي من Microsoft Azure
- للحصول على معلومات حول استخدام واجهة سطر الأوامر (CLI) للتعلم الآلي من Microsoft Azure لإنشاء المكونات والمسارات، راجع إنشاء مسارات التعلم الآلي وتشغيلها باستخدام المكونات باستخدام واجهة سطر الأوامر (CLI) للتعلم الآلي من Microsoft Azure
- للحصول على معلومات حول نشر المسارات في الإنتاج باستخدام نقاط النهاية الدفعية، راجع كيفية نشر المسارات مع نقاط نهاية الدفعات