Python için Azure Machine Learning SDK'sı nedir?

Veri bilimcileri ve yapay zeka geliştiricileri Python için Azure Machine Learning SDK'sını, Azure Machine Learning hizmetiyle makine öğrenmesi iş akışlarını oluşturmak ve çalıştırmak için kullanır. Jupyter Notebooks, Visual Studio Code veya tercih ettiğiniz Python IDE gibi herhangi bir Python ortamında hizmetle etkileşim kurabilirsiniz.

SDK'nın başlıca alanları şunlardır:

  • Makine öğrenmesi denemelerinde kullanılan veri kümelerinizi keşfetme, hazırlama ve bunların yaşam döngüsünü yönetme.
  • Makine öğrenmesi denemelerinizi izlemek, günlüğe kaydetmek ve düzenlemek için bulut kaynaklarını yönetme.
  • Modelleri yerel olarak veya GPU hızlandırmalı model eğitimi gibi bulut kaynaklarını kullanarak eğitme.
  • Yapılandırma parametrelerini ve eğitim verilerini kabul eden otomatik makine öğrenimini kullanın. Tahminleri çalıştırmaya yönelik en iyi modeli bulmak için algoritmaları ve hiper parametre ayarlarını otomatik olarak yineler.
  • Eğitilen modellerinizi herhangi bir uygulamada kullanılabilecek RESTful hizmetlerine dönüştürmek için web hizmetlerini dağıtma.

Kullanmaya nasıl başlayacağınızı gösteren adım adım yönergeler için öğreticiyi deneyin.

Aşağıdaki bölümlerde SDK'daki en önemli sınıflardan bazılarına genel bakış bilgileri ve bu sınıfları kullanmak için yaygın tasarım desenleri sağlanır. SDK'yı almak için yükleme kılavuzuna bakın.

Kararlı ve deneysel karşılaştırması

Python için Azure Machine Learning SDK 'Sı aynı SDK 'da hem tutarlı hem de deneysel özellikler sağlar.

Kararlı Özellikler

Kararlı Özellikler çoğu kullanım durumları ve üretim ortamları için önerilir. Bunlar daha seyrek ve deneysel özellikleri güncelleştirirler.

Deneysel Özellikler (geliştirme)

Deneysel özellikler, üretim kullanımı için uygun olmayan veya tam olarak test edilmemiş güncelleştirmeler & yeni geliştirilmiş özelliklerdir. Özellikler genellikle işlevsel olsa da, bazı önemli değişiklikler ekleyebilir. Deneysel özellikler, SDK bölünmesi hataları dışarı aktarmak için kullanılır ve yalnızca sınama dönemi süresince güncelleştirmeleri alır.

Adın gösterdiği gibi, deneysel Özellikler denemeye yöneliktir ve hata serbest veya kararlı olarak kabul edilmez. Bu nedenle, özelliklerin ve güncelleştirmelerin erken sürümlerini denemek isteyen gelişmiş kullanıcılara yalnızca deneysel Özellikler önerilir ve hata ve göz raporlamaya katılmayı amaçlıyoruz.

Deneysel özellikler, SDK başvurusunda bir notun bölümü tarafından etiketlenmiş.

Çalışma alanı

Ad alanı:azureml.core.workspace.Workspace

Workspace sınıfı bulutta makine öğrenmesi modellerini denemek, eğitmek ve dağıtmak için kullanabileceğiniz temel kaynaklardan biridir. Azure aboneliğinizi ve kaynak grubunuzu kolayca kullanılan bir nesneye bağlar.

Aşağıdaki kodu kullanarak sınıfı dışarı aktarın ve yeni bir çalışma alanı oluşturun. Önceden mevcut olan ve çalışma alanı için kullanmak istediğiniz bir Azure kaynak grubunuz varsa create_resource_group değerini False olarak ayarlayın. Bazı işlevlerde Azure kimlik doğrulaması kimlik bilgileri istenebilir.

from azureml.core import Workspace
ws = Workspace.create(name='myworkspace',
                      subscription_id='<azure-subscription-id>',
                      resource_group='myresourcegroup',
                      create_resource_group=True,
                      location='eastus2'
                     )

Çalışma alanını önce bir yapılandırma JSON dosyasına yazarak birden çok ortamda aynı çalışma alanını kullanın. Bu abonelik, kaynak ve çalışma alanı adı verilerinizi kaydeder.

ws.write_config(path="./file-path", file_name="ws_config.json")

Yapılandırma dosyasını okuyarak çalışma alanınızı yükleyin.

from azureml.core import Workspace
ws_other_environment = Workspace.from_config(path="./file-path/ws_config.json")

Alternatif olarak, yapılandırma dosyalarını kullanmadan mevcut çalışma alanını yüklemek için statik get() yöntemini kullanın.

from azureml.core import Workspace
ws = Workspace.get(name="myworkspace", subscription_id='<azure-subscription-id>', resource_group='myresourcegroup')

Aşağıdaki kod örneklerinde ws değişkeni bir Workspace nesnesini temsil eder.

Deneme

Ad alanı:azureml.core.experiment.Experiment

Experiment sınıfı, deneme koleksiyonunu (tek tek model çalıştırmaları) temsil eden bir diğer temel bulut kaynağıdır. Aşağıdaki kod Workspace öğesinin içinden adıyla Experiment nesnesini getirir veya ad yoksa yeni bir Experiment nesnesi oluşturur.

from azureml.core.experiment import Experiment
experiment = Experiment(workspace=ws, name='test-experiment')

Aşağıdaki kodu çalıştırarak Workspace içinde yer alan tüm Experiment nesnelerinin listesini alın.

list_experiments = Experiment.list(ws)

Experiment içinden Run nesnelerinin (denemeler) listesini almak için get_runs işlevini kullanın. Aşağıdaki kod çalıştırmaları alır ve her çalıştırma kimliğini yazdırır.

list_runs = experiment.get_runs()
for run in list_runs:
    print(run.id)

Denemeyi yürütmenin iki yolu vardır. Jupyter notebook'ta etkileşimli deneme yapıyorsanız start_logging işlevini kullanın. Standart bir Python ortamından deneme gönderiyorsanız submit işlevini kullanın. Her iki işlev de Run nesnesi döndürür. Aşağıdaki kod örneklerinde experiment değişkeni bir Experiment nesnesini temsil eder.

Çalıştır

Ad alanı:azureml.core.run.Run

Çalıştırma, bir denemenin tek bir yürütmesini temsil eder. Run denemenin zaman uyumsuz yürütmesini izlemek, denemenin çıkışını depolamak, sonuçları analiz etmek ve oluşturulan yapıtlara erişmek için kullandığınız nesnedir. Ölçümleri ve yapıtları Çalıştırma Geçmişi'nde günlüğe kaydetmek için Run nesnesini deneme kodunuzun içinde kullanırsınız. İşlevsellik şunları içerir:

  • Ölçümleri ve verileri depolama ve alma.
  • Geçmiş çalıştırmaları kolayca arayabilmek için etiketleri ve alt hiyerarşiyi kullanma.
  • Depolanmış model dosyalarını dağıtım için kaydetme.
  • Çalıştırmanın özelliklerini depolama, değiştirme ve alma.

Experiment nesnesini bir çalıştırma yapılandırması nesnesiyle göndererek Run nesnesi oluşturun. Çalıştırmalarınıza özel kategoriler ve etiketler eklemek için tags parametresini kullanın. Bunları daha sonra Experiment nesnesinden kolayca bulabilir ve alabilirsiniz.

tags = {"prod": "phase-1-model-tests"}
run = experiment.submit(config=your_config_object, tags=tags)

Statik list işlevini kullanarak Experiment içinden tümRun nesnelerinin listesini alın. Daha önce oluşturduğunuz etikete göre filtrelemek için tags parametresini belirtin.

from azureml.core.run import Run
filtered_list_runs = Run.list(experiment, tags=tags)

Çalıştırmanın ayrıntılı çıkışını almak için get_details işlevini kullanın.

run_details = run.get_details()

Bu işlevin çıkışı şunları içeren bir sözlüktür:

  • Çalıştırma kimliği
  • Durum
  • Başlangıç ve bitiş zamanı
  • İşlem hedefi (yerel - bulut)
  • Çalıştırmada kullanılan bağımlılıklar ve sürümler
  • Eğitime özgü veriler (model türüne göre farklılık gösterir)

Çalıştırmaları yapılandırma ve izlemeyi gösteren diğer örnekler için nasıl yapılır makalesine bakın.

Model

Ad alanı:azureml.core.model.Model

Model sınıfı makine öğrenmesi modellerinin bulut gösterimleriyle çalışmak için kullanılır. Yöntemler, modelleri yerel dağıtım ortamlarıyla buluttaki Workspace nesnesi arasında aktarmanıza yardımcı olur.

Azure bulutundaki modellerinizi çalışma alanınızda depolamak ve bunların sürümlerini oluşturmak için model kaydını kullanabilirsiniz. Kayıtlı modeller ad ve sürümle tanımlanır. Modeli var olan bir adla her kaydettiğinizde, kayıt defteri sürümü bir artırır. Azure Machine Learning, yalnızca Azure Machine Learning modelleri değil, Python 3 aracılığıyla yüklenebilen tüm modelleri destekler.

Aşağıdaki örnekte scikit-learn ile basit bir yerel sınıflandırma modeli oluşturma, modeli Workspace nesnesine kaydetme ve buluttan indirme işlemlerini gösterir.

Yaşlarına göre müşteri erimesini tahmin etmek için basit bir sınıflandırıcı (clf) oluşturun. Ardından aynı dizinde .pkl dosyasına modelin dökümünü alın.

from sklearn import svm
import joblib
import numpy as np

# customer ages
X_train = np.array([50, 17, 35, 23, 28, 40, 31, 29, 19, 62])
X_train = X_train.reshape(-1, 1)
# churn y/n
y_train = ["yes", "no", "no", "no", "yes", "yes", "yes", "no", "no", "yes"]

clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(X_train, y_train)

joblib.dump(value=clf, filename="churn-model.pkl")

Modeli çalışma alanınıza kaydetmek için register işlevini kullanın. Yerel model yolunu ve model adını belirtin. Aynı adın birden çok kez kaydedilmesi yeni sürüm oluşturur.

from azureml.core.model import Model

model = Model.register(workspace=ws, model_path="churn-model.pkl", model_name="churn-model-test")

Artık model çalışma alanınıza kaydedildiğine göre, modellerinizi kolayca yönetebilir, indirebilir ve düzenleyebilirsiniz. Model nesnesini (örneğin başka bir ortamdaki) Workspace nesnesinden almak için sınıf oluşturucusunu kullanın ve model adıyla isteğe bağlı parametreleri belirtin. Ardından download işlevini kullanarak bulut klasörü yapısıyla birlikte modeli indirin.

from azureml.core.model import Model
import os

model = Model(workspace=ws, name="churn-model-test")
model.download(target_dir=os.getcwd())

Modeli Workspace nesnesinden kaldırmak için delete işlevini kullanın.

model.delete()

Kayıtlı bir modeliniz olduktan sonra bu modeli web hizmeti olarak dağıtmak sorunsuz bir işlemdir. İlk olarak bir görüntü oluşturur ve kaydedersiniz. Bu adım Python ortamını ve bağımlılıklarını yapılandırır; ayrıca web hizmeti isteği ve yanıt biçimlerini tanımlamak için bir betik vardır. Görüntüyü oluşturduktan sonra işlem hedefi için CPU çekirdeklerini ve bellek parametrelerini ayarlayan bir dağıtım yapılandırması oluşturursunuz. Sonra da görüntünüzü eklersiniz.

ComputeTarget, RunConfiguration ve ScriptRunConfig

Ad alanı:azureml.core.compute.ComputeTarget
Ad alanı:azureml.core.runconfig.RunConfiguration
Ad alanı:azureml.core.script_run_config.ScriptRunConfig

ComputeTarget sınıfı işlem hedeflerini oluşturmak ve yönetmek için soyut bir üst sınıftır. İşlem hedefi, makine öğrenmesi modellerinizi eğitebileceğiniz çeşitli kaynakları temsil eder. İşlem hedefi bir yerel makine olabileceği gibi Azure Machine Learning İşlem, Azure HDInsight veya uzak sanal makine gibi bir bulut kaynağı da olabilir.

Model eğitiminde güçlü sanal makinelerden yararlanmak için işlem hedeflerini kullanın ve kalıcı işlem hedefleri veya çalışma zamanında çağrılan geçici hedefler ayarlayın. İşlem hedeflerini ayarlamaya ve yönetmeye yönelik kapsamlı bir kılavuz için nasıl yapılır makalesine bakın.

Aşağıdaki kodda bir AmlCompute (ComputeTarget sınıfının alt sınıfı) hedefi oluşturmaya yönelik basit bir örnek gösterilir. Bu hedef Workspace nesnenizde bir çalışma zamanı uzak işlem kaynağı oluşturur. İş gönderildiğinde kaynak otomatik olarak ölçeklendirilir. Çalıştırma bittiğinde de otomatik olarak silinir.

Basit scikit-learn erime modelini yeniden kullanın ve bunu geçerli dizinde kendi dosyası (train.py) içinde oluşturun. Dosyanın sonunda outputs adlı yeni bir dizin oluşturun. Bu adım joblib.dump() tarafından serileştirilen eğitilmiş modelinizi depolamak için bulutta (çalışma alanınız) bir dizin oluşturur.

# train.py

from sklearn import svm
import numpy as np
import joblib
import os

# customer ages
X_train = np.array([50, 17, 35, 23, 28, 40, 31, 29, 19, 62])
X_train = X_train.reshape(-1, 1)
# churn y/n
y_train = ["yes", "no", "no", "no", "yes", "yes", "yes", "no", "no", "yes"]

clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(X_train, y_train)

os.makedirs("outputs", exist_ok=True)
joblib.dump(value=clf, filename="outputs/churn-model.pkl")

Ardından RunConfiguration nesnesinin örneğini oluşturarak ve tür ile boyutu ayarlayarak işlem hedefini oluşturursunuz. Bu örnekte en küçük kaynak boyutu (1 CPU çekirdeği, 3,5 GB bellek) kullanılır. list_vms değişkeni desteklenen sanal makinelerin listesini ve onların boyutlarını içerir.

from azureml.core.runconfig import RunConfiguration
from azureml.core.compute import AmlCompute
list_vms = AmlCompute.supported_vmsizes(workspace=ws)

compute_config = RunConfiguration()
compute_config.target = "amlcompute"
compute_config.amlcompute.vm_size = "STANDARD_D1_V2"

CondaDependencies sınıfını kullanarak uzak işlem kaynağının Python ortamı için bağımlılıkları oluşturun. train.py dosyası, ortamda yüklenmesi gereken scikit-learn ve numpy kullanır. Ayrıca bağımlılıkların sürümlerini de belirtebilirsiniz. dependencies nesnesini kullanarak compute_config içinde ortamı ayarlayın.

from azureml.core.conda_dependencies import CondaDependencies

dependencies = CondaDependencies()
dependencies.add_pip_package("scikit-learn")
dependencies.add_pip_package("numpy==1.15.4")
compute_config.environment.python.conda_dependencies = dependencies

Artık denemeyi göndermeye hazırsınız. ScriptRunConfig sınıfını kullanarak işlem hedefi yapılandırmasını ekleyin ve train.py eğitim betiğinin yolunu/dosyasını belirtin. submit() işlevinin config parametresini belirterek denemeyi gönderin. Ortam başlatıldığında ve model eğitildiğinde zaman uyumsuz çalıştırma çıkışını görmek için sonuç çalıştırmasında wait_for_completion çağrısı yapın.

from azureml.core.experiment import Experiment
from azureml.core import ScriptRunConfig

script_run_config = ScriptRunConfig(source_directory=os.getcwd(), script="train.py", run_config=compute_config)
experiment = Experiment(workspace=ws, name="compute_target_test")
run = experiment.submit(config=script_run_config)
run.wait_for_completion(show_output=True)

Çalıştırma bittikten sonra eğitilen model dosyası churn-model.pkl çalışma alanınızda kullanılabilir durumda olur.

Ortam

Ad alanı:azureml.core.environment

Azure Machine Learning ortamlar, eğitim ve Puanlama betikleriniz etrafında Python paketlerini, ortam değişkenlerini ve yazılım ayarlarını belirtir. Python 'a ek olarak, ortamlar için PySpark, Docker ve R 'yi de yapılandırabilirsiniz. Dahili olarak ortamlar, işlem hedefi üzerinde eğitim ve Puanlama süreçlerini çalıştırmak için kullanılan Docker görüntülerinde elde edilir. Ortamlar, Machine Learning çalışma alanınızda, çeşitli bilgi işlem hedefleri ve işlem türleri genelinde tekrarlanabilir, denetlenebilir ve taşınabilir makine öğrenimi iş akışlarını etkinleştiren yönetilen ve sürümlü varlıklardır.

EnvironmentŞunları yapmak için bir nesnesi kullanabilirsiniz:

  • Eğitim betiğinizi geliştirin.
  • Model eğitimi için Azure Machine Learning Işlem üzerindeki aynı ortamı ölçeklendirerek yeniden kullanın.
  • Modelinizi, belirli bir işlem türüne bağlı kalmadan aynı ortamla dağıtın.

Aşağıdaki kod, Environment SDK 'dan sınıfını içeri aktarır ve bir ortam nesnesi başlatır.

from azureml.core.environment import Environment
Environment(name="myenv")

Conda, PIP veya özel tekerlek dosyalarını kullanarak bir ortama paket ekleyin. Her bir paket bağımlılığını, CondaDependency sınıfı ortama eklemek için kullanarak belirtin PythonSection .

Aşağıdaki örnek ortama ekler. Sürüm 1.17.0 ekler numpy . Ayrıca pillow , paketini ortamına ekler myenv . Örnek, add_conda_package() sırasıyla yöntemini ve yöntemini kullanır add_pip_package() .

from azureml.core.environment import Environment
from azureml.core.conda_dependencies import CondaDependencies

myenv = Environment(name="myenv")
conda_dep = CondaDependencies()

# Installs numpy version 1.17.0 conda package
conda_dep.add_conda_package("numpy==1.17.0")

# Installs pillow package
conda_dep.add_pip_package("pillow")

# Adds dependencies to PythonSection of myenv
myenv.python.conda_dependencies=conda_dep

Bir eğitim çalıştırması göndermek için ortamınızı, işlem hedefinive eğitim Python betiğinizi çalıştırma yapılandırması olarak birleştirmeniz gerekir. Bu yapılandırma, çalıştırmaları göndermek için kullanılan bir sarmalayıcı nesnesidir.

Bir eğitim çalıştırması gönderdiğinizde, yeni bir ortam oluşturmak birkaç dakika sürebilir. Süre, gerekli bağımlılıkların boyutuna bağlıdır. Ortamlar hizmet tarafından önbelleğe alınır. Bu nedenle, ortam tanımı değişmeden kaldığı sürece, tam kurulum zamanına yalnızca bir kez tabi olursunuz.

Aşağıdaki örnek sarmalayıcı nesneniz olarak kullanacağınız yeri gösterir ScriptRunConfig .

from azureml.core import ScriptRunConfig, Experiment
from azureml.core.environment import Environment

exp = Experiment(name="myexp", workspace = ws)
# Instantiate environment
myenv = Environment(name="myenv")

# Add training script to run config
runconfig = ScriptRunConfig(source_directory=".", script="train.py")

# Attach compute target to run config
runconfig.run_config.target = "local"

# Attach environment to run config
runconfig.run_config.environment = myenv

# Submit run 
run = exp.submit(runconfig)

Çalıştırmayı göndermeden önce çalışma yapılandırmanızda bir ortam belirtmezseniz, sizin için varsayılan bir ortam oluşturulur.

Bir Web hizmeti dağıtmak için ortamları kullanmak üzere model dağıtma bölümüne bakın.

Pipeline, PythonScriptStep

Ad alanı:azureml.pipeline.core.pipeline.Pipeline
Ad alanı:azureml.pipeline.steps.python_script_step.PythonScriptStep

Azure Machine Learning işlem hattı, eksiksiz bir makine öğrenmesi görevinin otomatik iş akışıdır. Alt görevler işlem hattı içinde bir dizi adım olarak kapsüllenir. Azure Machine Learning işlem hattı bir Python betiği çağıran tek adım kadar basit olabilir. İşlem hatları şunlara yönelik işlevselliği içerir:

  • İçeri aktarma, doğrulama ve temizleme, ham verileri kullanışlı hale getirme ve dönüştürme, normalleştirme ve hazırlamayı içeren veri hazırlığı
  • Bağımsız değişkenleri, dosya yollarını ve günlük / raporlama yapılandırmalarını parametreleştirmeyi içeren eğitim yapılandırması
  • Belirli veri kümelerini belirtmeyi, farklı donanım işlem kaynaklarını, dağıtılmış işlemeyi ve ilerleme durumu izlemeyi içerebilen verimli ve tekrarlanabilir şekilde eğitme ve doğrulama
  • Sürüm oluşturma, ölçeklendirme, sağlama ve erişim denetimini içeren dağıtım
  • Herhangi bir HTTP kitaplığından yeniden çalıştırmak için işlem hattını bir REST uç noktasında yayımlama

PythonScriptStep, işlem kaynağında Python Betiği çalıştırmaya yönelik temel, yerleşik bir adımdır. Betik adını ve betiğin bağımsız değişkenleri, işlem hedefi, girişler ve çıkışlar gibi diğer isteğe bağlı parametreleri alır. Aşağıdaki kod basit bir PythonScriptStep örneğidir. Bir train.py betiği örneği için öğreticinin alt bölümüne bakın.

from azureml.pipeline.steps import PythonScriptStep

train_step = PythonScriptStep(
    script_name="train.py",
    arguments=["--input", blob_input_data, "--output", output_data1],
    inputs=[blob_input_data],
    outputs=[output_data1],
    compute_target=compute_target,
    source_directory=project_folder
)

En az bir adım oluşturulduktan sonra adımlar birbirine bağlanabilir ve basit, otomatik bir işlem hattı olarak yayımlanabilir.

from azureml.pipeline.core import Pipeline

pipeline = Pipeline(workspace=ws, steps=[train_step])
pipeline_run = experiment.submit(pipeline)

İşlem hattı iş akışı oluşturmayı gösteren kapsamlı bir örnek için gelişmiş öğreticiyi izleyin.

İşlem hatlarını oluşturma ve kullanma deseni

Bir Azure Machine Learning işlem hattı, bir Azure Machine Learning çalışma alanıyla ilişkilendirilir ve bir işlem hattı adımı söz konusu çalışma alanı içinde kullanılabilir bir işlem hedefi ile ilişkilendirilir. Daha fazla bilgi için çalışma alanları hakkındaki bu makaleye veya işlem hedeflerinin bu açıklamasına bakın.

İşlem hattı adımları için yaygın bir desen:

  1. Çalışma alanı, işlem ve depolamayı belirtin
  2. Şunları kullanarak giriş ve çıkış verilerini yapılandırın
    1. Mevcut bir Azure veri deposu sağlayan veri kümesi
    2. Yazılan tablo verilerini kapsülleyen PipelineDataset
    3. Bir adım tarafından yazılan ve başka bir adım tarafından kullanılması amaçlanan ara dosya veya dizin verileri için kullanılan PipelineData
  3. Bir veya birden çok işlem hattı adımı tanımlayın
  4. Çalışma alanınızı ve adımlarınızı kullanan bir işlem hattı örneği oluşturun
  5. İşlem hattını göndereceğiniz bir deneme oluşturun
  6. Deneme sonuçlarını izleyin

Bu not defteri bu desenin iyi bir örneğidir. iş

Azure Machine Learning İşlem Hatları ve özellikle de bunların diğer işlem hattı türlerinden farkı hakkında daha fazla bilgi için bu makaleye bakın.

AutoMLConfig

Ad alanı:azureml.train.automl.automlconfig.AutoMLConfig

Otomatik makine öğrenmesi eğitiminin parametrelerini yapılandırmak için AutoMLConfig sınıfını kullanın. Otomatik makine öğrenmesi, makine öğrenmesi algoritmalarının ve hiper parametre ayarlarının birçok bileşimini kullanarak yinelemeler yapar. Ardından seçtiğiniz doğruluk ölçümü temelinde en uygun modeli bulur. Yapılandırma şunların belirtilmesine olanak tanır:

  • Görev türü (sınıflandırma, regresyon, tahmin)
  • Algoritma yineleme sayısı ve yineleme başına maksimum süre
  • İyileştirilecek doğruluk ölçümü
  • İzin verilenler/İzin verilmeyenler listesi için algoritmalar
  • Çapraz doğrulama sayısı
  • İşlem hedefleri
  • Eğitim verileri

Not

Otomatik makine öğrenmesini kullanmak için yüklemenizde fazladan automl kullanın.

Otomatik makine öğrenmesi denemelerini ayarlamaya yönelik ayrıntılı kılavuzlar ve örnekler için öğeticiye ve nasıl yapılır makalesine bakın.

Aşağıdaki kodda bir sınıflandırma modeli için otomatik makine öğrenmesi yapılandırma nesnesini oluşturma ve denemeyi gönderdiğiniz sırada bu nesneyi kullanma işlemleri gösterilir.

from azureml.train.automl import AutoMLConfig

automl_config = AutoMLConfig(task="classification",
                             X=your_training_features,
                             y=your_training_labels,
                             iterations=30,
                             iteration_timeout_minutes=5,
                             primary_metric="AUC_weighted",
                             n_cross_validations=5
                            )

Denemeyi göndermek için automl_config nesnesini kullanın.

from azureml.core.experiment import Experiment

experiment = Experiment(ws, "automl_test_experiment")
run = experiment.submit(config=automl_config, show_output=True)

Denemeyi gönderdikten sonra, her yineleme bittikçe eğitimin doğruluğu çıkışta gösterilir. Çalıştırma bittiğinde AutoMLRun nesnesi (Run sınıfını genişleten nesne) döndürülür. Model nesnesi döndürmek için get_output() işlevini kullanarak en uygun modeli alın.

best_model = run.get_output()
y_predict = best_model.predict(X_test)

Model dağıtımı

Ad alanı:azureml.core.model.InferenceConfig
Ad alanı:azureml.core.webservice.webservice.Webservice

InferenceConfigSınıfı, modeli ve Web hizmetini barındırmak için gereken ortamı tanımlayan yapılandırma ayarlarına yöneliktir.

Webservice, modellerinize yönelik web hizmetlerini oluşturmak ve dağıtmak için soyut bir üst sınıftır. Model dağıtımına ve Web hizmetlerine dağıtmaya hazırlanma hakkında ayrıntılı kılavuz için bkz. nasıl yapılır.

Modelinizi bir Web hizmeti olarak dağıtırken ortamları kullanabilirsiniz. Ortamlar, modelinizi hem eğitim hesaplamanıza hem de çıkarım işlem ortamınızda aynı kitaplıkları kullanarak dağıtabileceğiniz, tekrarlanabilir, bağlantılı bir iş akışını etkinleştirir. Dahili olarak, ortamlar Docker görüntüleri olarak uygulanır. Microsoft tarafından sunulan görüntüleri kullanabilir ya da kendi özel Docker görüntülerinizi kullanabilirsiniz. Daha önce ContainerImage dağıtımınız için sınıfını kullanıyorsanız, DockerSection ortamları olan benzer bir iş akışını yerine getirmeye yönelik sınıfa bakın.

Bir Web hizmeti dağıtmak için ortam, çıkarım işlem, Puanlama betiği ve dağıtım nesnenizin kayıtlı modelini birleştirin deploy() .

Aşağıdaki örnek, ortamı kullanarak bir eğitim çalıştırmasını zaten tamamlamış olduğunu varsayar myenv ve Azure Container Instances için bu modeli dağıtmak isteyebilirsiniz.

from azureml.core.model import InferenceConfig, Model
from azureml.core.webservice import AciWebservice, Webservice

# Register the model to deploy
model = run.register_model(model_name = "mymodel", model_path = "outputs/model.pkl")

# Combine scoring script & environment in Inference configuration
inference_config = InferenceConfig(entry_script="score.py",
                                   environment=myenv)

# Set deployment configuration
deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1,
                                                       memory_gb = 1)

# Define the model, inference, & deployment configuration and web service name and location to deploy
service = Model.deploy(workspace = ws,
                       name = "my_web_service",
                       models = [model],
                       inference_config = inference_config,
                       deployment_config = deployment_config)

Bu örnek küçük ölçekli testlere ve hızlı dağıtımlara en uygun olan Azure Container Instances web hizmetini oluşturur. Modelinizi üretim ölçeğinde bir web hizmeti olarak dağıtmak için Azure Kubernetes Service'i (AKS) kullanın. Daha fazla bilgi için bkz. AksCompute sınıfı.

Veri kümesi

Ad alanı:azureml.core.dataset.Dataset
Ad alanı:azureml.data.file_dataset.FileDataset
Ad alanı:azureml.data.tabular_dataset.TabularDataset

Dataset sınıfı Azure Machine Learning içinde verileri incelemek ve yönetmek için temel bir kaynaktır. Özet istatistiklerle verilerinizi inceleyebilir, sürüm oluşturma ve yeniden üretebilme özelliklerini edinmek için Veri Kümesini AML çalışma alanınıza kaydedebilirsiniz. Veri kümeleri eğitim sırasında modeller tarafından kolayca kullanılır. Ayrıntılı kullanım örnekleri için nasıl yapılır kılavuzuna bakın.

  • TabularDatasetbir dosya veya dosya listesi ayrıştırılarak oluşturulan tablo biçimindeki verileri temsil eder.
  • FileDataset veri depolarındaki veya genel URL'lerden gelen bir veya birden çok dosyaya başvurur.

Aşağıdaki örnekte veri deposundaki tek bir yola işaret eden bir TabularDataset'in nasıl oluşturulduğu gösterilir.

from azureml.core import Dataset

dataset = Dataset.Tabular.from_delimited_files(path = [(datastore, 'train-dataset/tabular/iris.csv')])
dataset.take(3).to_pandas_dataframe()

Aşağıdaki örnek, FileDataset başvuruda bulunan birden çok dosya URL 'si oluşturmayı gösterir.

from azureml.core.dataset import Dataset

url_paths = [
            'http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz',
            'http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz',
            'http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz',
            'http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz'
            ]
dataset = Dataset.File.from_files(path=url_paths)

Sonraki adımlar

Python için Azure Machine Learning SDK'sını kullanmayı öğrenmek için bu sonraki adımları deneyin:

  • Python'da model oluşturma, eğitme ve dağıtma işlemlerini öğrenmek için öğreticiyi izleyin.

  • Sol taraftaki içindekiler tablosunu kullanarak bu sitedeki başvuru belgelerinde sınıfları ve modülleri arayın.