Python için Azure Machine Learning SDK v1 nedir?
Önemli
Bu makale, geçerli SDK olmayan Azure Machine Learning SDK v1 hakkındadır. Geçerli SDK sürümü, Azure Machine Learning Python SDK v2sürümüdür. SDK sürümleri arasındaki farklar hakkında bilgi için bkz. v2'ye yükseltme.
Veri bilimciler ve yapay zeka geliştiricileri, Azure Machine Learning hizmetiile makine öğrenmesi iş akışları oluşturmak ve çalıştırmak için Python için Azure Machine Learning SDK v1'i kullanır. Jupyter Notebooks, Visual Studio Codeveya sık kullandığınız Python IDE dahil olmak üzere herhangi bir Python ortamında hizmetle etkileşim kurabilirsiniz.
SDK'nın önemli alanları şunlardır:
- Makine öğrenmesi denemelerinde kullanılan veri kümelerinizin yaşam döngüsünü keşfedin, hazırlayın ve yönetin.
- Makine öğrenmesi denemelerinizi izlemek, günlüğe kaydetmek ve düzenlemek için bulut kaynaklarını yönetin.
- Modelleri yerel olarak veya GPU hızlandırmalı model eğitimi de dahil olmak üzere bulut kaynaklarını kullanarak eğitin.
- Yapılandırma parametrelerini ve eğitim verilerini kabul eden otomatik makine öğrenmesini kullanın. Tahminleri çalıştırmak için en iyi modeli bulmak için algoritmalar ve hiper parametre ayarları aracılığıyla otomatik olarak yinelenir.
- Eğitilen modellerinizi herhangi bir uygulamada kullanılabilecek RESTful hizmetlerine dönüştürmek için web hizmetlerini dağıtın.
Kullanmaya başlama hakkında adım adım izlenecek yol için
Aşağıdaki bölümler, SDK'daki en önemli sınıflardan bazılarına genel bakış ve bunları kullanmaya yönelik yaygın tasarım desenleridir. SDK'yı almak için
Kararlı ve deneysel
Python için Azure Machine Learning SDK'sı aynı SDK'da hem kararlı hem de deneysel özellikler sağlar.
Özellik/yetenek durumu | Açıklama |
---|---|
Kararlı özellikler | üretime hazır Bu özellikler çoğu kullanım örneği ve üretim ortamı için önerilir. Bunlar daha az sıklıkta ve deneysel özelliklerle güncelleştirilir. |
Deneysel özellikler |
Geliştirme Bu özellikler, yeni geliştirilen özellikler & üretim kullanımı için hazır veya tam olarak test edilemeyebilir güncelleştirmelerdir. Özellikler genellikle işlevsel olsa da bazı hataya neden olan değişiklikler içerebilir. Deneysel özellikler, SDK'nın hataya neden olan hatalarını çözmek için kullanılır ve yalnızca test süresi boyunca güncelleştirmeleri alır. Deneysel özellikler, önizlemeolan özellikler olarak da adlandırılır. Adından da belirtildiği gibi, deneysel (önizleme) özellikler deneme amaçlıdır ve hatasız veya kararlıolarak kabul edilmez. Bu nedenle, deneysel özellikleri yalnızca özelliklerin ve güncelleştirmelerin erken sürümlerini denemek isteyen ve hataların ve hataların raporlanmasında yer almak isteyen ileri düzey kullanıcılara öneririz. |
Deneysel özellikler, SDK başvurusundaki bir not bölümüyle etiketlenir ve Azure Machine Learning belgeleriboyunca (önizleme) gibi metinlerle gösterilir.
Ç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 kullandığınız temel bir kaynaktır. Azure aboneliğinizi ve kaynak grubunuzu kolayca tüketilen bir nesneye bağlar.
Mevcut örnekleri (Depolama, Key Vault, App-Insights ve Azure Container Registry-ACR
sınıfını içeri aktarın ve aşağıdaki kodu kullanarak yeni bir çalışma alanı oluşturun. Çalışma alanı için kullanmak istediğiniz daha önce var olan bir Azure kaynak grubunuz varsa create_resource_group
False
olarak ayarlayın. Bazı işlevler Azure kimlik doğrulaması kimlik bilgilerini isteyebilir.
from azureml.core import Workspace
ws = Workspace.create(name='myworkspace',
subscription_id='<azure-subscription-id>',
resource_group='myresourcegroup',
create_resource_group=True,
location='eastus2'
)
İlk olarak bir yapılandırma JSON dosyasına yazarak aynı çalışma alanını birden çok ortamda kullanın. Bu, aboneliğinizi, kaynağınızı 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 var olan bir ç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')
değişken ws
aşağıdaki kod örneklerinde bir Workspace
nesnesini temsil eder.
Deney
Ad Alanı: azureml.core.experiment.Experiment
Experiment
sınıfı, denemelerden oluşan bir koleksiyonu temsil eden başka bir temel bulut kaynağıdır (tek tek model çalıştırmaları). Aşağıdaki kod, Workspace
içinden ada göre bir Experiment
nesnesi getirir veya ad yoksa yeni bir Experiment
nesnesi oluşturur.
from azureml.core.experiment import Experiment
experiment = Experiment(workspace=ws, name='test-experiment')
Workspace
içindeki tüm Experiment
nesnelerinin listesini almak için aşağıdaki kodu çalıştırın.
list_experiments = Experiment.list(ws)
Experiment
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)
Deneme denemesi yürütmenin iki yolu vardır. Jupyter not defterinde etkileşimli denemeler ediyorsanız start_logging
işlevini kullanın. Standart bir Python ortamından deneme gönderirken submit
işlevini kullanın. her iki işlev de bir Run
nesnesi döndürür.
experiment
değişkeni, aşağıdaki kod örneklerinde Experiment
nesnesini temsil eder.
Koşmak
Ad Alanı: azureml.core.run.Run
Çalıştırma, denemenin tek bir denemesini temsil eder.
Run
, bir denemenin zaman uyumsuz yürütülmesini izlemek, denemenin çıkışını depolamak, sonuçları analiz etmek ve oluşturulan yapıtlara erişmek için kullandığınız nesnedir. Çalıştırma Geçmişi hizmetine ölçümleri ve yapıtları günlüğe kaydetmek için deneme kodunuzun içinde Run
kullanırsınız. İşlevsellik şunları içerir:
- Ölçümleri ve verileri depolama ve alma.
- Geçmiş çalıştırmaların kolayca aranabilmesi için etiketleri ve alt hiyerarşiyi kullanma.
- Depolanan model dosyalarını dağıtım için kaydetme.
- Çalıştırmanın özelliklerini depolama, değiştirme ve alma.
yapılandırma nesnesi çalıştırma tags
parametresini kullanın. Bunları daha sonra Experiment
'den kolayca bulabilir ve alabilirsiniz.
tags = {"prod": "phase-1-model-tests"}
run = experiment.submit(config=your_config_object, tags=tags)
Experiment
tüm Run
nesnelerinin listesini almak için statik list
işlevini kullanı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 çıktısı şunları içeren bir sözlüktür:
- Çalıştırma Kimliği
- Durum
- Başlangıç ve bitiş saati
- İşlem hedefi (yerel ve bulut)
- Çalıştırmada kullanılan bağımlılıklar ve sürümler
- Eğitime özgü veriler (model türüne bağlı olarak değişir)
Çalıştırmaları yapılandırma ve izleme hakkında daha fazla örnek için bkz. nasıl yapılır.
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 geliştirme ortamları ile buluttaki Workspace
nesnesi arasında aktarmanıza yardımcı olur.
Modellerinizi Azure bulutunda, çalışma alanınızda depolamak ve sürüme eklemek için model kaydını kullanabilirsiniz. Kayıtlı modeller ad ve sürüme göre tanımlanır. Mevcut bir modelle aynı ada sahip bir modeli her kaydettiğinizde, kayıt defteri sürümü artırır. Azure Machine Learning, yalnızca Azure Machine Learning modellerini 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
kaydetme ve modeli buluttan indirme işlemi gösterilmektedir.
Müşteri değişim sıklığına göre yaşlarına göre tahminde bulunurken clf
basit bir sınıflandırıcı oluşturun. Ardından modeli aynı dizindeki bir .pkl
dosyasına döküm edin.
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ı birden çok kez kaydetmek yeni bir 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ğinden modellerinizi kolayca yönetebilir, indirebilir ve düzenleyebilirsiniz.
Workspace
bir model (örneğin, başka bir ortamda) nesnesi almak için sınıf oluşturucuyu kullanın ve model adını ve isteğe bağlı parametreleri belirtin. Ardından bulut klasörü yapısı da dahil olmak üzere modeli indirmek için download
işlevini kullanın.
from azureml.core.model import Model
import os
model = Model(workspace=ws, name="churn-model-test")
model.download(target_dir=os.getcwd())
modeli Workspace
kaldırmak için delete
işlevini kullanın.
model.delete()
Kayıtlı bir modeliniz olduktan sonra, bunu web hizmeti olarak dağıtmak basit bir işlemdir. İlk olarakbir görüntü oluşturup kaydetmeniz
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şturmaya ve yönetmeye yönelik soyut üst sınıftır. İşlem hedefi, makine öğrenmesi modellerinizi eğitebileceğiniz çeşitli kaynakları temsil eder. İşlem hedefi yerel bir makine veya Azure Machine Learning İşlem, Azure HDInsight veya uzak sanal makine gibi bir bulut kaynağı olabilir.
Model eğitimi için güçlü sanal makinelerden yararlanmak ve kalıcı işlem hedefleri veya geçici çalışma zamanı tarafından çağrılan hedefler ayarlamak için işlem hedeflerini kullanın. İşlem hedeflerini ayarlama ve yönetme hakkında kapsamlı bir kılavuz için bkz. nasıl yapılır.
Aşağıdaki kodda AmlCompute
(ComputeTarget
alt sınıfı) hedefi ayarlamaya yönelik basit bir örnek gösterilmektedir. Bu hedef, Workspace
nesnenizde bir çalışma zamanı uzak işlem kaynağı oluşturur. Bir iş gönderildiğinde kaynak otomatik olarak ölçeklendirilir. Çalıştırma tamamlandığında otomatik olarak silinir.
Basit scikit-learn
değişim sıklığı modelini yeniden kullanın ve geçerli dizinde train.py
kendi dosyasına oluşturun. Dosyanın sonunda outputs
adlı yeni bir dizin oluşturun. Bu adım, eğitilen modelinizi seri hale joblib.dump()
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 bir RunConfiguration
nesnesi örneği oluşturup türü ve boyutu ayarlayarak işlem hedefini oluşturacaksınız. 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 ve boyutlarının listesini 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ıyor. Bağımlılıkların sürümlerini de belirtebilirsiniz. ortamı compute_config
ayarlamak için dependencies
nesnesini kullanı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. İşlem hedefi yapılandırmasını eklemek ve train.py
eğitim betiğine yol/dosya belirtmek için ScriptRunConfig
sınıfını kullanın.
submit()
işlevinin config
parametresini belirterek denemeyi gönderin. Ortam başlatılırken ve model eğitilirken zaman uyumsuz çalıştırma çıktısını görmek için sonuçta elde edilen çalıştırmada wait_for_completion
çağırın.
Uyarı
ScriptRunConfig
parametrelerinde kullanılan belirli karakterlerle ilgili sınırlamalar şunlardır:
-
"
,$
,;
ve\
karakterleri, bash komutlarını ayırmak için ayrılmış karakterler olarak kabul edildiği için arka uç tarafından kaçış karakteri olarak kabul edilir. -
(
,)
,%
,!
,^
,<
,>
,&
ve|
karakterleri, Windows'ta yerel çalıştırmalar için kaçıştır.
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 tamamlandıktan sonra eğitilen model dosyası churn-model.pkl
çalışma alanınızda kullanılabilir.
Çevre
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 hedefinde eğitim ve puanlama işlemlerini çalıştırmak için kullanılan Docker görüntüleriyle sonuçlanır. Ortamlar, Machine Learning çalışma alanınızda çeşitli işlem hedefleri ve işlem türleri arasında yeniden üretilebilir, denetlenebilir ve taşınabilir makine öğrenmesi iş akışlarına olanak tanıyan yönetilen ve sürümlenmiş varlıklardır.
bir Environment
nesnesi kullanarak:
- Eğitim betiğinizi geliştirin.
- Büyük ölçekte model eğitimi için Azure Machine Learning İşlem'de aynı ortamı yeniden kullanın.
- Modelinizi belirli bir işlem türüne bağlı kalmadan aynı ortamla dağıtın.
Aşağıdaki kod, sdk'dan Environment
sınıfını içeri aktarır ve ortam nesnesinin örneğini oluşturur.
from azureml.core.environment import Environment
Environment(name="myenv")
Conda, pip veya özel tekerlek dosyalarını kullanarak bir ortama paket ekleyin.
CondaDependency
sınıfını kullanarak her paket bağımlılığını ortamın PythonSection
ekleyin.
Aşağıdaki örnek ortama ekler.
numpy
1.17.0 sürümünü ekler. Ayrıca pillow
paketini myenv
ortamına ekler. Örnek sırasıyla add_conda_package()
yöntemini ve add_pip_package()
yöntemini kullanır.
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
Eğitim çalıştırması göndermek için ortamınızı, işlem hedefive eğitim Python betiğinizi bir çalıştırma yapılandırmasında birleştirmeniz gerekir. Bu yapılandırma, çalıştırmaları göndermek için kullanılan bir sarmalayıcı nesnesidir.
Eğitim çalıştırması gönderdiğinizde, yeni bir ortamın oluşturulması 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şmediği sürece tam kurulum süresi yalnızca bir kez uygulanır.
Aşağıdaki örnekte, sarmalayıcı nesnesi olarak ScriptRunConfig
nerede kullanacağınız gösterilmektedir.
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ıştırma yapılandırmanızda bir ortam belirtmezseniz, sizin için varsayılan bir ortam oluşturulur.
Bir web hizmetini dağıtmak için ortamları kullanmak için Modeli dağıtma bölümüne bakın.
İşlem Hattı, 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ı, Python betiğini çağıran bir adım kadar basit olabilir. İşlem hatları şunlara yönelik işlevleri içerir:
- İçeri aktarma, doğrulama ve temizleme, gübreleme ve dönüştürme, normalleştirme ve hazırlama dahil olmak üzere veri hazırlama
- Bağımsız değişkenleri, dosya yollarını ve günlüğe kaydetme/raporlama yapılandırmalarını parametreleştirme de dahil olmak üzere eğitim yapılandırması
- Belirli veri alt kümelerini, farklı donanım işlem kaynaklarını, dağıtılmış işlemeyi ve ilerleme durumunu izlemeyi belirtmeyi içerebilen verimli ve tekrarlanabilir şekilde eğitim ve doğrulama
- Sürüm oluşturma, ölçeklendirme, sağlama ve erişim denetimi dahil olmak üzere dağıtım
- Herhangi bir HTTP kitaplığından yeniden çalıştırmak için bir işlem hattını REST uç noktasına yayımlama
PythonScriptStep
, işlem hedefinde Python Betiği çalıştırmaya yönelik temel, yerleşik bir adımdır. Bir betik adı ve betik için bağımsız değişkenler, 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.
train.py
betiği örneği için öğretici 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 bir otomatik 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şturmaya yönelik kapsamlı bir örnek için
İşlem hatlarını oluşturma ve kullanma deseni
Azure Machine Learning işlem hattı bir Azure Machine Learning çalışma alanıyla ilişkilendirilir ve işlem hattı adımı bu çalışma alanında bulunan bir işlem hedefiyle ilişkilendirilir. Daha fazla bilgi için, çalışma alanlarıyla ilgili bu
İşlem hattı adımları için yaygın bir desen:
- Çalışma alanı, işlem ve depolama alanı belirtme
- Kullanarak giriş ve çıkış verilerinizi yapılandırma
- Veri Kümesi mevcut azure veri depolarını kullanılabilir hale getirir
- Yazılan tablo verilerini kapsülleyen pipelinedataset
- PipelineData, 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ılır
- Bir veya daha fazla işlem hattı adımı tanımlama
- Çalışma alanınızı ve adımlarınızı kullanarak işlem hattı örneği oluşturma
- İşlem hattını gönderdiğiniz bir deneme oluşturma
- Deneme sonuçlarını izleme
Bu not defteri bu desenin iyi bir örneğidir. iş
Azure Machine Learning İşlem Hatları ve özellikle diğer işlem hattı türlerinden farklı oldukları hakkında daha fazla bilgi içinbu
AutoMLConfig
Ad Alanı: azureml.train.automl.automlconfig.AutoMLConfig
Otomatik makine öğrenmesi eğitimi için parametreleri 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 yineler. Ardından seçtiğiniz doğruluk ölçümüne göre en uygun modeli bulur. Yapılandırma şunları belirtmek için izin verir:
- Görev türü (sınıflandırma, regresyon, tahmin)
- Algoritma yineleme sayısı ve yineleme başına maksimum süre
- İyileştirme için doğruluk ölçümü
- Blok listesi/izin verilenler listesi algoritmaları
- Çapraz doğrulama sayısı
- İşlem hedefleri
- Eğitim verileri
Not
Otomatik makine öğrenmesini kullanmak için yüklemenizdeki ek automl
kullanın.
Otomatik makine öğrenmesi denemelerini ayarlamaya ilişkin ayrıntılı kılavuzlar ve örnekler için
Aşağıdaki kod, sınıflandırma modeli için otomatik makine öğrenmesi yapılandırma nesnesi oluşturmayı ve deneme gönderirken kullanmayı gösterir.
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
)
Deneme 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 çıktı, tamamlandıktan sonra her yineleme için eğitim doğruluğunu gösterir. Çalıştırma tamamlandıktan sonra bir AutoMLRun
nesnesi (Run
sınıfını genişletir) döndürülür. bir 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
InferenceConfig
sınıfı, modeli ve web hizmetini barındırmak için gereken ortamı açıklayan yapılandırma ayarlarına yöneliktir.
Webservice
, modelleriniz için web hizmetleri oluşturmaya ve dağıtmaya yönelik soyut üst sınıftır. Model dağıtımına hazırlanma ve web hizmetlerini dağıtma hakkında ayrıntılı bir kılavuz için bu nasıl yapılırkonusuna bakın.
Modelinizi web hizmeti olarak dağıtırken ortamları kullanabilirsiniz. Ortamlar, modelinizi hem eğitim işleminizde hem de çıkarım işleminizde aynı kitaplıkları kullanarak dağıtabileceğiniz yeniden üretilebilir, bağlı bir iş akışı sağlar. Ortamlar dahili olarak Docker görüntüleri olarak uygulanır. Microsoft tarafından sağlanan görüntüleri veya kendi özel Docker görüntülerinizi kullanabilirsiniz. Dağıtımınız için daha önce ContainerImage
sınıfını kullandıysanız ortamlarla benzer bir iş akışı gerçekleştirmek için DockerSection
sınıfına bakın.
Bir web hizmeti dağıtmak için ortamı, çıkarım işlemini, puanlama betiğini ve kayıtlı modeli dağıtım nesnenizde deploy()
birleştirin.
Aşağıdaki örnekte, myenv
ortamını kullanarak bir eğitim çalıştırmasını tamamladığınız ve bu modeli Azure Container Instances'a dağıtmak istediğiniz varsayılır.
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 test ve hızlı dağıtımlar için en iyi 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ı
Dataset
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çindeki verileri keşfetmeye ve yönetmeye yönelik temel bir kaynaktır. Özet istatistiklerle verilerinizi keşfedebilir ve sürüm oluşturma ve yeniden üretilebilirlik özelliklerini almak için Veri Kümesini AML çalışma alanınıza kaydedebilirsiniz. Veri kümeleri eğitim sırasında modeller tarafından kolayca tüketilir. Ayrıntılı kullanım örnekleri için
-
TabularDataset
, bir dosya veya dosya listesi ayrıştırılarak oluşturulan tablo biçimindeki verileri temsil eder. -
FileDataset
veri depolarındaki veya genel URL'lerdeki tek veya birden çok dosyaya başvurur.
Aşağıdaki örnekte, bir veri deposunda tek bir yola işaret eden bir TabularDataset'in nasıl oluşturulacağı gösterilmektedir.
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 örnekte, birden çok dosya URL'sine başvuran bir FileDataset
nasıl oluşturulacağı gösterilmektedir.
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 aşağıdaki sonraki adımları deneyin:
Python'da model oluşturmayı, eğitmeyi ve dağıtmayı öğrenmek için öğretici izleyin.
Soldaki içindekiler tablosunu kullanarak bu sitedeki başvuru belgelerinde sınıfları ve modülleri arayın.