إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Python SDK azure-ai-ml v2 (الحالي)
في هذه المقالة، تعرف على كيفية تشغيل البرامج النصية للتدريب scikit-learn باستخدام Azure التعلم الآلي Python SDK v2.
تُستخدم نصوص المثال في هذا المقال لتصنيف صور زهرة iris لبناء نموذج التعلم الآلي معتمداً على قاعدة بيانات iris الخاصة بـ scikit-Learn.
سواء كنت تقوم بتدريب نموذج التعلم الآلي scikit-learn من الصفر أو كنت تقوم بإحضار نموذج موجود إلى السحابة، يمكنك استخدام التعلم الآلي من Microsoft Azure لتوسيع نطاق وظائف التدريب مفتوحة المصدر باستخدام موارد الحساب السحابية المرنة. يمكنك إنشاء نماذج درجة الإنتاج وتوزيعها وإصدارها ومراقبتها باستخدام التعلم الآلي من Microsoft Azure.
المتطلبات الأساسية
يمكنك تشغيل التعليمات البرمجية لهذه المقالة إما في مثيل حساب Azure التعلم الآلي أو دفتر ملاحظات Jupyter الخاص بك.
مثيل حساب التعلم الآلي من Azure
- أكمل إنشاء موارد للبدء في إنشاء مثيل حساب. يتضمن كل مثيل حساب خادم دفتر ملاحظات مخصص محمل مسبقا مع SDK ومستودع عينة دفاتر الملاحظات.
- حدد علامة تبويب Notebook في Azure Machine Learning Studio. في مجلد تدريب العينات، ابحث عن دفتر ملاحظات مكتمل وموسع بالانتقال إلى هذا الدليل: مهام > sdk > v2 > من خطوة > واحدة scikit-learn > train-hyperparameter-tune-deploy-with-sklearn.
- يمكنك استخدام التعليمات البرمجية المكتملة مسبقا في مجلد التدريب النموذجي لإكمال هذا البرنامج التعليمي.
خادم دفتر ملاحظات Jupyter.
إعداد المهمة
يقوم هذا القسم بإعداد مهمة التدريب عن طريق تحميل حزم Python المطلوبة، والاتصال بمساحة عمل، وإنشاء مورد حساب لتشغيل مهمة أمر، وإنشاء بيئة لتشغيل المهمة.
الاتصال بمساحة العمل
أولا، تحتاج إلى الاتصال بمساحة عمل Azure التعلم الآلي. تعد مساحة عمل Azure التعلم الآلي مورد المستوى الأعلى للخدمة. يوفر لك مكانا مركزيا للعمل مع جميع البيانات الاصطناعية التي تقوم بإنشائها عند استخدام Azure التعلم الآلي.
نحن نستخدم DefaultAzureCredential للوصول إلى مساحة العمل. يجب أن تكون بيانات الاعتماد هذه قادرة على معالجة معظم سيناريوهات مصادقة Azure SDK.
إذا DefaultAzureCredential لم يعمل لك، فشاهد azure-identity reference documentation أو Set up authentication لمزيد من بيانات الاعتماد المتوفرة.
# Handle to the workspace
from azure.ai.ml import MLClient
# Authentication package
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
إذا كنت تفضل استخدام مستعرض لتسجيل الدخول والمصادقة، يجب إزالة التعليقات في التعليمات البرمجية التالية واستخدامها بدلا من ذلك.
# Handle to the workspace
# from azure.ai.ml import MLClient
# Authentication package
# from azure.identity import InteractiveBrowserCredential
# credential = InteractiveBrowserCredential()
بعد ذلك، احصل على مؤشر إلى مساحة العمل من خلال توفير معرف الاشتراك واسم مجموعة الموارد واسم مساحة العمل. للعثور على هذه المعلمات:
- ابحث في الزاوية العلوية اليسرى من شريط أدوات Azure التعلم الآلي studio عن اسم مساحة العمل.
- حدد اسم مساحة العمل لإظهار مجموعة الموارد ومعرف الاشتراك.
- انسخ قيم مجموعة الموارد ومعرف الاشتراك في التعليمات البرمجية.
# Get a handle to the workspace
ml_client = MLClient(
credential=credential,
subscription_id="<SUBSCRIPTION_ID>",
resource_group_name="<RESOURCE_GROUP>",
workspace_name="<AML_WORKSPACE_NAME>",
)
نتيجة تشغيل هذا البرنامج النصي هي مقبض مساحة عمل تستخدمه لإدارة الموارد والوظائف الأخرى.
ملاحظة
لن يؤدي الإنشاء MLClient إلى توصيل العميل بمساحة العمل. تهيئة العميل بطيئة وتنتظر للمرة الأولى التي يحتاج فيها إلى إجراء مكالمة. في هذه المقالة، يحدث هذا أثناء إنشاء الحساب.
إنشاء مورد حساب
يحتاج Azure التعلم الآلي إلى مورد حساب لتشغيل وظيفة. يمكن أن يكون هذا المورد أجهزة فردية أو متعددة العقد مع Linux أو نظام التشغيل Windows، أو نسيج حساب معين مثل Spark.
في المثال التالي للبرنامج النصي، نقوم بتوفير Linux compute cluster. يمكنك مشاهدة الصفحة للحصول على Azure Machine Learning pricing القائمة الكاملة لأحجام الجهاز الظاهري وأسعاره. نحن بحاجة فقط إلى نظام مجموعة أساسي لهذا المثال؛ وبالتالي، نختار نموذج Standard_DS3_v2 مع 2 نواة vCPU وذاكرة وصول عشوائي بسعة 7 غيغابايت لإنشاء حساب Azure التعلم الآلي.
from azure.ai.ml.entities import AmlCompute
# Name assigned to the compute cluster
cpu_compute_target = "cpu-cluster"
try:
# let's see if the compute target already exists
cpu_cluster = ml_client.compute.get(cpu_compute_target)
print(
f"You already have a cluster named {cpu_compute_target}, we'll reuse it as is."
)
except Exception:
print("Creating a new cpu compute target...")
# Let's create the Azure ML compute object with the intended parameters
cpu_cluster = AmlCompute(
name=cpu_compute_target,
# Azure ML Compute is the on-demand VM service
type="amlcompute",
# VM Family
size="STANDARD_DS3_V2",
# Minimum running nodes when there is no job running
min_instances=0,
# Nodes in cluster
max_instances=4,
# How many seconds will the node running after the job termination
idle_time_before_scale_down=180,
# Dedicated or LowPriority. The latter is cheaper but there is a chance of job termination
tier="Dedicated",
)
# Now, we pass the object to MLClient's create_or_update method
cpu_cluster = ml_client.compute.begin_create_or_update(cpu_cluster).result()
print(
f"AMLCompute with name {cpu_cluster.name} is created, the compute size is {cpu_cluster.size}"
)إنشاء بيئة وظيفة
لتشغيل وظيفة التعلم الآلي Azure، تحتاج إلى بيئة. تغلف بيئة Azure التعلم الآلي التبعيات (مثل وقت تشغيل البرامج والمكتبات) اللازمة لتشغيل البرنامج النصي للتدريب على التعلم الآلي على مورد الحوسبة الخاص بك. تشبه هذه البيئة بيئة Python على جهازك المحلي.
يسمح لك Azure التعلم الآلي إما باستخدام بيئة منسقة (أو جاهزة) أو إنشاء بيئة مخصصة باستخدام صورة Docker أو تكوين Conda. في هذه المقالة، يمكنك إنشاء بيئة مخصصة لوظائفك، باستخدام ملف Conda YAML.
إنشاء بيئة مخصصة
لإنشاء بيئتك المخصصة، يمكنك تعريف تبعيات Conda في ملف YAML. أولا، إنشاء دليل لتخزين الملف. في هذا المثال، الاسم هو env.
import os
dependencies_dir = "./env"
os.makedirs(dependencies_dir, exist_ok=True)
ثم قم بإنشاء الملف في دليل التبعيات. في هذا المثال، قمنا بتسمية الملف conda.yml.
%%writefile {dependencies_dir}/conda.yaml
name: sklearn-env
channels:
- conda-forge
dependencies:
- python=3.8
- pip=21.2.4
- scikit-learn=0.24.2
- scipy=1.7.1
- pip:
- azureml-mlflow==1.42.0
- mlflow-skinny==2.3.2
تحتوي المواصفات على بعض الحزم المعتادة (مثل numpy و pip) التي تستخدمها في وظيفتك.
بعد ذلك، استخدم ملف YAML لإنشاء هذه البيئة المخصصة وتسجيلها في مساحة العمل الخاصة بك. يتم حزم البيئة في حاوية Docker في وقت التشغيل.
from azure.ai.ml.entities import Environment
custom_env_name = "sklearn-env"
job_env = Environment(
name=custom_env_name,
description="Custom environment for sklearn image classification",
conda_file=os.path.join(dependencies_dir, "conda.yaml"),
image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest",
)
job_env = ml_client.environments.create_or_update(job_env)
print(
f"Environment with name {job_env.name} is registered to workspace, the environment version is {job_env.version}"
)
لمزيد من المعلومات حول إنشاء البيئات واستخدامها، قم بمراجعة إنشاء بيئات البرامج واستخدامها في التعلم الآلي من Microsoft Azure.
[اختياري] إنشاء بيئة مخصصة باستخدام Intel® Extension ل Scikit-Learn
هل تريد تسريع البرامج النصية scikit-learn على أجهزة Intel؟ حاول إضافة Intel® Extension for Scikit-Learn إلى ملف conda yaml واتباع الخطوات التالية المفصلة أعلاه. سترى كيفية تمكين هذه التحسينات لاحقا في هذا المثال:
%%writefile {dependencies_dir}/conda.yaml
name: sklearn-env
channels:
- conda-forge
dependencies:
- python=3.8
- pip=21.2.4
- scikit-learn=0.24.2
- scikit-learn-intelex
- scipy=1.7.1
- pip:
- azureml-mlflow==1.42.0
- mlflow-skinny==2.3.2تكوين مهمة التدريب وإرسالها
في هذا القسم، نغطي كيفية تشغيل وظيفة تدريبية، باستخدام برنامج نصي للتدريب قدمناه. للبدء، يمكنك إنشاء مهمة التدريب عن طريق تكوين الأمر لتشغيل البرنامج النصي للتدريب. بعد ذلك، يمكنك إرسال مهمة التدريب لتشغيلها في Azure التعلم الآلي.
إعداد البرنامج النصي للتدريب
في هذه المقالة، قدمنا البرنامج النصي للتدريب train_iris.py. في الممارسة العملية، يجب أن تكون قادرا على اتخاذ أي برنامج نصي للتدريب المخصص كما هو وتشغيله باستخدام Azure التعلم الآلي دون الحاجة إلى تعديل التعليمات البرمجية الخاصة بك.
ملاحظة
يقوم البرنامج النصي للتدريب المقدم بالآتي:
- يوضح كيفية تسجيل بعض المقاييس إلى تشغيل التعلم الآلي من Azure
- تنزيل بيانات التدريب واستخراجها باستخدام
iris = datasets.load_iris() - تدريب نموذج، ثم حفظه وتسجيله
لاستخدام البيانات الخاصة بك والوصول إليها، راجع كيفية قراءة البيانات وكتابتها في وظيفة لتوفير البيانات أثناء التدريب.
لاستخدام البرنامج النصي للتدريب، قم أولا بإنشاء دليل حيث ستقوم بتخزين الملف.
import os
src_dir = "./src"
os.makedirs(src_dir, exist_ok=True)
بعد ذلك، قم بإنشاء ملف البرنامج النصي في الدليل المصدر.
%%writefile {src_dir}/train_iris.py
# Modified from https://www.geeksforgeeks.org/multiclass-classification-using-scikit-learn/
import argparse
import os
# importing necessary libraries
import numpy as np
from sklearn import datasets
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import train_test_split
import joblib
import mlflow
import mlflow.sklearn
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--kernel', type=str, default='linear',
help='Kernel type to be used in the algorithm')
parser.add_argument('--penalty', type=float, default=1.0,
help='Penalty parameter of the error term')
# Start Logging
mlflow.start_run()
# enable autologging
mlflow.sklearn.autolog()
args = parser.parse_args()
mlflow.log_param('Kernel type', str(args.kernel))
mlflow.log_metric('Penalty', float(args.penalty))
# loading the iris dataset
iris = datasets.load_iris()
# X -> features, y -> label
X = iris.data
y = iris.target
# dividing X, y into train and test data
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
# training a linear SVM classifier
from sklearn.svm import SVC
svm_model_linear = SVC(kernel=args.kernel, C=args.penalty)
svm_model_linear = svm_model_linear.fit(X_train, y_train)
svm_predictions = svm_model_linear.predict(X_test)
# model accuracy for X_test
accuracy = svm_model_linear.score(X_test, y_test)
print('Accuracy of SVM classifier on test set: {:.2f}'.format(accuracy))
mlflow.log_metric('Accuracy', float(accuracy))
# creating a confusion matrix
cm = confusion_matrix(y_test, svm_predictions)
print(cm)
registered_model_name="sklearn-iris-flower-classify-model"
##########################
#<save and register model>
##########################
# Registering the model to the workspace
print("Registering the model via MLFlow")
mlflow.sklearn.log_model(
sk_model=svm_model_linear,
registered_model_name=registered_model_name,
artifact_path=registered_model_name
)
# # Saving the model to a file
print("Saving the model via MLFlow")
mlflow.sklearn.save_model(
sk_model=svm_model_linear,
path=os.path.join(registered_model_name, "trained_model"),
)
###########################
#</save and register model>
###########################
mlflow.end_run()
if __name__ == '__main__':
main()[اختياري] تمكين ملحق Intel® لتحسينات Scikit-Learn لمزيد من الأداء على أجهزة Intel
إذا قمت بتثبيت Intel® Extension Scikit-Learn (كما هو موضح في القسم السابق)، يمكنك تمكين تحسينات الأداء عن طريق إضافة سطري التعليمات البرمجية إلى أعلى ملف البرنامج النصي، كما هو موضح أدناه.
لمعرفة المزيد حول Intel® Extension for Scikit-Learn، تفضل بزيارة وثائق الحزمة.
%%writefile {src_dir}/train_iris.py
# Modified from https://www.geeksforgeeks.org/multiclass-classification-using-scikit-learn/
import argparse
import os
# Import and enable Intel Extension for Scikit-learn optimizations
# where possible
from sklearnex import patch_sklearn
patch_sklearn()
# importing necessary libraries
import numpy as np
from sklearn import datasets
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import train_test_split
import joblib
import mlflow
import mlflow.sklearn
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--kernel', type=str, default='linear',
help='Kernel type to be used in the algorithm')
parser.add_argument('--penalty', type=float, default=1.0,
help='Penalty parameter of the error term')
# Start Logging
mlflow.start_run()
# enable autologging
mlflow.sklearn.autolog()
args = parser.parse_args()
mlflow.log_param('Kernel type', str(args.kernel))
mlflow.log_metric('Penalty', float(args.penalty))
# loading the iris dataset
iris = datasets.load_iris()
# X -> features, y -> label
X = iris.data
y = iris.target
# dividing X, y into train and test data
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
# training a linear SVM classifier
from sklearn.svm import SVC
svm_model_linear = SVC(kernel=args.kernel, C=args.penalty)
svm_model_linear = svm_model_linear.fit(X_train, y_train)
svm_predictions = svm_model_linear.predict(X_test)
# model accuracy for X_test
accuracy = svm_model_linear.score(X_test, y_test)
print('Accuracy of SVM classifier on test set: {:.2f}'.format(accuracy))
mlflow.log_metric('Accuracy', float(accuracy))
# creating a confusion matrix
cm = confusion_matrix(y_test, svm_predictions)
print(cm)
registered_model_name="sklearn-iris-flower-classify-model"
##########################
#<save and register model>
##########################
# Registering the model to the workspace
print("Registering the model via MLFlow")
mlflow.sklearn.log_model(
sk_model=svm_model_linear,
registered_model_name=registered_model_name,
artifact_path=registered_model_name
)
# # Saving the model to a file
print("Saving the model via MLFlow")
mlflow.sklearn.save_model(
sk_model=svm_model_linear,
path=os.path.join(registered_model_name, "trained_model"),
)
###########################
#</save and register model>
###########################
mlflow.end_run()
if __name__ == '__main__':
main()بناء وظيفة التدريب
الآن بعد أن أصبح لديك جميع الأصول المطلوبة لتشغيل وظيفتك، حان الوقت لإنشائه باستخدام Azure التعلم الآلي Python SDK v2. لتشغيل المهمة، نقوم بإنشاء command.
Azure التعلم الآلي command هو مورد يحدد جميع التفاصيل اللازمة لتنفيذ التعليمات البرمجية للتدريب في السحابة. تتضمن هذه التفاصيل المدخلات والمخرجات، ونوع الأجهزة التي يجب استخدامها، والبرامج المراد تثبيتها، وكيفية تشغيل التعليمات البرمجية الخاصة بك. يحتوي command على معلومات لتنفيذ أمر واحد.
تكوين الأمر
يمكنك استخدام الغرض command العام لتشغيل البرنامج النصي للتدريب وتنفيذ المهام المطلوبة. إنشاء كائن Command لتحديد تفاصيل التكوين لمهمة التدريب الخاصة بك.
- تتضمن مدخلات هذا الأمر عدد العهود ومعدل التعلم والزخم ودليل الإخراج.
- لقيم المعلمة:
- توفير مجموعة
cpu_compute_target = "cpu-cluster"الحوسبة التي قمت بإنشائها لتشغيل هذا الأمر؛ - توفير البيئة
sklearn-envالمخصصة التي قمت بإنشائها لتشغيل مهمة Azure التعلم الآلي؛ - قم بتكوين إجراء سطر الأوامر نفسه - في هذه الحالة، الأمر هو
python train_iris.py. يمكنك الوصول إلى المدخلات والمخرجات في الأمر عبر${{ ... }}تدوين ؛ و - تكوين بيانات التعريف مثل اسم العرض واسم التجربة؛ حيث تكون التجربة حاوية لجميع التكرارات التي يقوم بها المرء في مشروع معين. سيتم سرد جميع المهام المرسلة تحت نفس اسم التجربة بجوار بعضها البعض في Azure التعلم الآلي studio.
- توفير مجموعة
from azure.ai.ml import command
from azure.ai.ml import Input
job = command(
inputs=dict(kernel="linear", penalty=1.0),
compute=cpu_compute_target,
environment=f"{job_env.name}:{job_env.version}",
code="./src/",
command="python train_iris.py --kernel ${{inputs.kernel}} --penalty ${{inputs.penalty}}",
experiment_name="sklearn-iris-flowers",
display_name="sklearn-classify-iris-flower-images",
)إرسال المهمة
حان الوقت الآن لإرسال المهمة للتشغيل في Azure التعلم الآلي. هذه المرة تستخدم create_or_update على ml_client.jobs.
ml_client.jobs.create_or_update(job)
بمجرد الانتهاء، تسجل الوظيفة نموذجا في مساحة العمل الخاصة بك (نتيجة للتدريب) وتخرج ارتباطا لعرض المهمة في Azure التعلم الآلي studio.
تحذير
يقوم التعلم الآلي من Microsoft Azure بتشغيل برامج نصية تدريبية من خلال نسخ دليل المصدر بالكامل. إذا كانت لديك بيانات حساسة لا تريد تحميلها، فاستخدم ملف ignore. أو لا تقم بتضمينه في دليل المصدر.
ما يحدث أثناء تنفيذ المهمة
عند تنفيذ المهمة، تمر المراحل التالية:
التحضير: يتم إنشاء صورة docker وفقاً للبيئة المحددة. يتم تحميل الصورة إلى سجل حاوية مساحة العمل وتخزينها مؤقتاً للتشغيل لاحقاً. تتدفق السجلات أيضاً إلى محفوظات التشغيل ويمكن عرضها لمراقبة التقدم. إذا تم تحديد بيئة منسقة، يتم استخدام النسخة الاحتياطية للصورة المخزنة مؤقتا تلك البيئة المنسقة.
التحجيم: يحاول نظام المجموعة زيادة الحجم إذا كان نظام المجموعة يتطلب عقدا لتنفيذ التشغيل أكثر مما هو متاح حاليا.
قيد التشغيل: يتم تحميل جميع البرامج النصية في مجلد البرنامج النصي src إلى هدف الحساب، ويتم تحميل مخازن البيانات أو نسخها، ويتم تنفيذ البرنامج النصي. يتم دفق المخرجات من stdout ومجلد ./logs إلى محفوظات التشغيل ويمكن استخدامها لمراقبة التشغيل.
ضبط المعلمات الفائقة للنموذج
الآن بعد أن رأيت كيفية القيام بتشغيل تدريب Scikit-learn بسيط باستخدام SDK، دعونا نرى ما إذا كان يمكنك تحسين دقة النموذج الخاص بك بشكل أكبر. يمكنك ضبط وتحسين المعلمات الفائقة لنموذجنا باستخدام قدرات Azure التعلم الآليsweep.
لضبط المعلمات الفائقة للنموذج، حدد مساحة المعلمة التي يمكن البحث فيها أثناء التدريب. يمكنك الضبط عن طريق استبدال بعض المعلمات (kernel و penalty) التي تم تمريرها إلى وظيفة التدريب مع مدخلات خاصة من الحزمة azure.ml.sweep .
from azure.ai.ml.sweep import Choice
# we will reuse the command_job created before. we call it as a function so that we can apply inputs
# we do not apply the 'iris_csv' input again -- we will just use what was already defined earlier
job_for_sweep = job(
kernel=Choice(values=["linear", "rbf", "poly", "sigmoid"]),
penalty=Choice(values=[0.5, 1, 1.5]),
)
ثم تقوم بتكوين المسح على مهمة الأمر، باستخدام بعض المعلمات الخاصة بالمسح، مثل المقياس الأساسي للمشاهدة وخوارزمية أخذ العينات لاستخدامها.
في التعليمات البرمجية التالية نستخدم أخذ العينات العشوائية لتجربة مجموعات تكوين مختلفة من المعلمات الفائقة في محاولة لزيادة مقياسنا الأساسي إلى أقصى حد، Accuracy.
sweep_job = job_for_sweep.sweep(
compute="cpu-cluster",
sampling_algorithm="random",
primary_metric="Accuracy",
goal="Maximize",
max_total_trials=12,
max_concurrent_trials=4,
)
الآن، يمكنك إرسال هذه المهمة كما كان من قبل. هذه المرة، أنت تدير مهمة مسح تجتاح عملك بالقطار.
returned_sweep_job = ml_client.create_or_update(sweep_job)
# stream the output and wait until the job is finished
ml_client.jobs.stream(returned_sweep_job.name)
# refresh the latest status of the job after streaming
returned_sweep_job = ml_client.jobs.get(name=returned_sweep_job.name)
يمكنك مراقبة المهمة باستخدام ارتباط واجهة مستخدم الاستوديو الذي يتم تقديمه أثناء تشغيل الوظيفة.
البحث عن أفضل نموذج وتسجيله
بمجرد اكتمال جميع عمليات التشغيل، يمكنك العثور على التشغيل الذي أنتج النموذج بأعلى دقة.
from azure.ai.ml.entities import Model
if returned_sweep_job.status == "Completed":
# First let us get the run which gave us the best result
best_run = returned_sweep_job.properties["best_child_run_id"]
# lets get the model from this run
model = Model(
# the script stores the model as "sklearn-iris-flower-classify-model"
path="azureml://jobs/{}/outputs/artifacts/paths/sklearn-iris-flower-classify-model/".format(
best_run
),
name="run-model-example",
description="Model created from run.",
type="custom_model",
)
else:
print(
"Sweep job status: {}. Please wait until it completes".format(
returned_sweep_job.status
)
)
يمكنك بعد ذلك تسجيل هذا النموذج.
registered_model = ml_client.models.create_or_update(model=model)توزيع النموذج
بعد تسجيل النموذج الخاص بك، يمكنك نشره بنفس الطريقة مثل أي نموذج مسجل آخر في التعلم الآلي من Microsoft Azure. لمزيد من المعلومات حول النشر، راجع نشر نموذج التعلم الآلي وتسجيله باستخدام نقطة النهاية المدارة عبر الإنترنت باستخدام Python SDK v2.
الخطوات التالية
في هذه المقالة، قمت بتدريب وتسجيل نموذج scikit-learn، وتعرفت على خيارات النشر. قم بمراجعة هذه المقالات الأخرى لمعرفة المزيد حول التعلم الآلي من Microsoft Azure.