Python ile görüntü işleme modellerini eğitmek için AutoML'yi ayarlama (v1)
ŞUNUN IÇIN GEÇERLIDIR: Python SDK azureml v1
Önemli
Bu makaledeki Azure CLI komutlarından bazıları Azure Machine Learning için uzantısını veya v1'i kullanır azure-cli-ml
. v1 uzantısı desteği 30 Eylül 2025'te sona erecektir. Bu tarihe kadar v1 uzantısını yükleyebilecek ve kullanabileceksiniz.
30 Eylül 2025'e kadar , veya v2 uzantısına geçmenizi ml
öneririz. v2 uzantısı hakkında daha fazla bilgi için bkz . Azure ML CLI uzantısı ve Python SDK v2.
Önemli
Bu özellik şu anda genel önizlemededir. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.
Bu makalede, Azure Machine Learning Python SDK'sında otomatik ML ile görüntü verileri üzerinde görüntü işleme modellerini eğitmeyi öğreneceksiniz.
Otomatikleştirilmiş ML, görüntü sınıflandırma, nesne algılama ve örnek kesimleme gibi görüntü işleme görevleri için model eğitimini destekler. Görüntü işleme görevleri için AutoML modelleri yazma, şu anda Azure Machine Learning Python SDK aracılığıyla desteklenmektedir. Sonuçta elde edilen deneme çalıştırmalarına, modellerine ve çıkışlarına Azure Machine Learning stüdyosu kullanıcı arabiriminden erişilebilir. Görüntü verilerinde görüntü işleme görevleri için otomatik ml hakkında daha fazla bilgi edinin.
Not
Görüntü işleme görevleri için otomatik ML yalnızca Azure Machine Learning Python SDK'sı aracılığıyla kullanılabilir.
Önkoşullar
Azure Machine Learning çalışma alanı. Çalışma alanını oluşturmak için bkz . Çalışma alanı kaynakları oluşturma.
Azure Machine Learning Python SDK'sı yüklü. SDK'yı yüklemek için
SDK'yı otomatik olarak yükleyen ve ML iş akışları için önceden yapılandırılmış bir işlem örneği oluşturun. Daha fazla bilgi için bkz . Azure Machine Learning işlem örneği oluşturma ve yönetme.
SDK'nın
automl
varsayılan yüklemesini içeren paketi kendiniz yükleyin.
Not
Yalnızca Python 3.7 ve 3.8, görüntü işleme görevleri için otomatik ML desteğiyle uyumludur.
Görev türünüzü seçin
Görüntüler için otomatik ML aşağıdaki görev türlerini destekler:
Görev türü | AutoMLImage yapılandırma söz dizimi |
---|---|
görüntü sınıflandırması | ImageTask.IMAGE_CLASSIFICATION |
görüntü sınıflandırması çok etiketli | ImageTask.IMAGE_CLASSIFICATION_MULTILABEL |
görüntü nesnesi algılama | ImageTask.IMAGE_OBJECT_DETECTION |
görüntü örneği segmentasyonu | ImageTask.IMAGE_INSTANCE_SEGMENTATION |
Bu görev türü gerekli bir parametredir ve içindeki AutoMLImageConfig
parametresi kullanılarak task
geçirilir.
Örneğin:
from azureml.train.automl import AutoMLImageConfig
from azureml.automl.core.shared.constants import ImageTask
automl_image_config = AutoMLImageConfig(task=ImageTask.IMAGE_OBJECT_DETECTION)
Eğitim ve doğrulama verileri
Görüntü işleme modelleri oluşturmak için etiketlenmiş görüntü verilerini Azure Machine Learning TabularDataset biçiminde model eğitimi için giriş olarak getirmeniz gerekir. Veri etiketleme projesinden dışarı aktardığınız bir öğesini kullanabilir TabularDataset
veya etiketlenmiş eğitim verilerinizle yeni TabularDataset
bir tane oluşturabilirsiniz.
Eğitim verileriniz farklı bir biçimdeyse (pascal VOC veya COCO gibi), verileri JSONL'ye dönüştürmek için örnek not defterlerine dahil edilen yardımcı betikleri uygulayabilirsiniz. Otomatik ML ile görüntü işleme görevleri için verileri hazırlama hakkında daha fazla bilgi edinin.
Uyarı
JSONL biçimindeki verilerden TabularDataset'lerin oluşturulması, bu özellik için yalnızca SDK kullanılarak desteklenir. Kullanıcı arabirimi aracılığıyla veri kümesi oluşturma şu anda desteklenmiyor. Şu andan itibaren kullanıcı arabirimi, JSONL biçimindeki görüntü URL'leri için kullanılan veri türü olan StreamInfo veri türünü tanımamaktadır.
Not
AutoML çalıştırması gönderebilmek için eğitim veri kümesinin en az 10 görüntüsü olmalıdır.
JSONL şema örnekleri
TabularDataset'in yapısı, eldeki göreve bağlıdır. Görüntü işleme görev türleri için aşağıdaki alanlardan oluşur:
Alan | Açıklama |
---|---|
image_url |
StreamInfo nesnesi olarak dosya yolu içerir |
image_details |
Görüntü meta verileri bilgileri yükseklik, genişlik ve biçimden oluşur. Bu alan isteğe bağlıdır ve bu nedenle mevcut olabilir veya olmayabilir. |
label |
Görev türüne göre resim etiketinin json gösterimi. |
Görüntü sınıflandırması için örnek bir JSONL dosyası aşağıda verilmiştir:
{
"image_url": "AmlDatastore://image_data/Image_01.png",
"image_details":
{
"format": "png",
"width": "2230px",
"height": "4356px"
},
"label": "cat"
}
{
"image_url": "AmlDatastore://image_data/Image_02.jpeg",
"image_details":
{
"format": "jpeg",
"width": "3456px",
"height": "3467px"
},
"label": "dog"
}
Aşağıdaki kod, nesne algılama için örnek bir JSONL dosyasıdır:
{
"image_url": "AmlDatastore://image_data/Image_01.png",
"image_details":
{
"format": "png",
"width": "2230px",
"height": "4356px"
},
"label":
{
"label": "cat",
"topX": "1",
"topY": "0",
"bottomX": "0",
"bottomY": "1",
"isCrowd": "true",
}
}
{
"image_url": "AmlDatastore://image_data/Image_02.png",
"image_details":
{
"format": "jpeg",
"width": "1230px",
"height": "2356px"
},
"label":
{
"label": "dog",
"topX": "0",
"topY": "1",
"bottomX": "0",
"bottomY": "1",
"isCrowd": "false",
}
}
Verileri kullanma
Verileriniz JSONL biçiminde olduktan sonra aşağıdaki kodla bir TabularDataset oluşturabilirsiniz:
ws = Workspace.from_config()
ds = ws.get_default_datastore()
from azureml.core import Dataset
training_dataset = Dataset.Tabular.from_json_lines_files(
path=ds.path('odFridgeObjects/odFridgeObjects.jsonl'),
set_column_types={'image_url': DataType.to_stream(ds.workspace)})
training_dataset = training_dataset.register(workspace=ws, name=training_dataset_name)
Otomatik ML, görüntü işleme görevleri için eğitim veya doğrulama veri boyutuna herhangi bir kısıtlama getirmez. Maksimum veri kümesi boyutu yalnızca veri kümesinin arkasındaki depolama katmanıyla (blob deposu) sınırlıdır. En az resim veya etiket sayısı yoktur. Ancak çıkış modelinin yeterince eğitildiğinden emin olmak için etiket başına en az 10-15 örnekle başlamanızı öneririz. Toplam etiket/sınıf sayısı ne kadar yüksekse etiket başına o kadar fazla örneğe ihtiyacınız olur.
Eğitim verileri gereklidir ve parametresi kullanılarak training_data
geçirilir. İsteğe bağlı olarak, AutoMLImageConfig parametresiyle validation_data
modeliniz için kullanılacak doğrulama veri kümesi olarak başka bir TabularDataset belirtebilirsiniz. Doğrulama veri kümesi belirtilmezse, bağımsız değişkeni farklı bir değerle geçirmediğiniz validation_size
sürece eğitim verilerinizin %20'si varsayılan olarak doğrulama için kullanılır.
Örneğin:
from azureml.train.automl import AutoMLImageConfig
automl_image_config = AutoMLImageConfig(training_data=training_dataset)
Deneme çalıştırmak için işlem
Model eğitimi gerçekleştirmek için otomatik ML için bir işlem hedefi sağlayın. Görüntü işleme görevleri için otomatik ML modelleri GPU SKU'ları gerektirir ve NC ile ND ailelerini destekler. Daha hızlı eğitim için NCsv3 serisini (v100 GPU ile) öneririz. Çok GPU'lu VM SKU'su olan bir işlem hedefi, eğitimi hızlandırmak için birden çok GPU'yu kullanır. Ayrıca, birden çok düğüme sahip bir işlem hedefi ayarladığınızda, modeliniz için hiper parametreleri ayarlarken paralellik aracılığıyla daha hızlı model eğitimi gerçekleştirebilirsiniz.
Not
İşlem hedefiniz olarak bir işlem örneği kullanıyorsanız, birden çok AutoML işinin aynı anda çalıştırılmadığından emin olun. Ayrıca, deneme kaynaklarınızda bunun 1 olarak ayarlandığından emin olunmax_concurrent_iterations
.
İşlem hedefi gerekli bir parametredir ve parametresi AutoMLImageConfig
kullanılarak compute_target
geçirilir. Örneğin:
from azureml.train.automl import AutoMLImageConfig
automl_image_config = AutoMLImageConfig(compute_target=compute_target)
Model algoritmalarını ve hiper parametreleri yapılandırma
Görüntü işleme görevlerine yönelik destek sayesinde model algoritmasını denetleyebilir ve hiper parametreleri süpürebilirsiniz. Bu model algoritmaları ve hiper parametreler süpürme için parametre alanı olarak geçirilir.
Model algoritması gereklidir ve parametresi aracılığıyla model_name
geçirilir. Tek bir model_name
değer belirtebilir veya birden çok seçenek arasından seçim yapabilirsiniz.
Desteklenen model algoritmaları
Aşağıdaki tabloda, her görüntü işleme görevi için desteklenen modeller özetlenmektedir.
Görev | Model algoritmaları | Dize değişmez değer söz dizimidefault_model * * ile belirtilir |
---|---|---|
Resim sınıflandırması (çok sınıflı ve çok etiketli) |
MobileNet: Mobil uygulamalar için hafif modeller ResNet: Artık ağlar ResNeSt: Dikkat ağlarını bölme SE-ResNeXt50: Sıkma ve Uyarma ağları ViT: Görüntü transformatör ağları |
mobilenetv2 resnet18 resnet34 resnet50 resnet101 resnet152 resnest50 resnest101 seresnext vits16r224 (küçük) vitb16r224 * (taban) vitl16r224 (büyük) |
Nesne algılama | YOLOv5: Bir aşamalı nesne algılama modeli Daha hızlı RCNN ResNet FPN: İki aşamalı nesne algılama modeli RetinaNet ResNet FPN: Odak Kaybı ile adres sınıfı dengesizliği Not: YOLOv5 model boyutları için hiper parametreye bakın model_size . |
yolov5 * fasterrcnn_resnet18_fpn fasterrcnn_resnet34_fpn fasterrcnn_resnet50_fpn fasterrcnn_resnet101_fpn fasterrcnn_resnet152_fpn retinanet_resnet50_fpn |
Örneği segmentlere ayırma | MaskRCNN ResNet FPN | maskrcnn_resnet18_fpn maskrcnn_resnet34_fpn maskrcnn_resnet50_fpn * maskrcnn_resnet101_fpn maskrcnn_resnet152_fpn maskrcnn_resnet50_fpn |
Model algoritmasını denetlemeye ek olarak, model eğitimi için kullanılan hiper parametreleri de ayarlayabilirsiniz. Kullanıma sunulan hiper parametrelerin çoğu modelden bağımsız olsa da hiper parametrelerin göreve veya modele özgü olduğu örnekler vardır. Bu örnekler için kullanılabilir hiper parametreler hakkında daha fazla bilgi edinin.
Veri artırma
Genel olarak derin öğrenme modeli performansı genellikle daha fazla veriyle iyileştirebilir. Veri artırma, veri kümesinin veri boyutunu ve değişkenliğini artırmaya yönelik pratik bir tekniktir. Bu teknik, fazla uygunluğu önlemeye ve modelin görünmeyen verilerde genelleştirme özelliğini geliştirmeye yardımcı olur. Otomatik ML, modele giriş görüntüleri beslemeden önce görüntü işleme görevine göre farklı veri artırma teknikleri uygular. Şu anda veri artırmalarını denetlemek için kullanıma sunulan bir hiper parametre yoktur.
Görev | Etkilenen veri kümesi | Uygulanan veri artırma teknikleri |
---|---|---|
Görüntü sınıflandırması (çok sınıflı ve çok etiketli) | Antrenman Doğrulama ve Test |
Rastgele yeniden boyutlandırma ve kırpma, yatay çevirme, renk dalgalanması (parlaklık, karşıtlık, doygunluk ve ton), kanal açısından ImageNet'in ortalama ve standart sapması kullanılarak normalleştirme Kırpmayı yeniden boyutlandırma, ortalama, normalleştirme |
Nesne algılama, örnek segmentasyonu | Antrenman Doğrulama ve Test |
Sınırlayıcı kutuların çevresinde rastgele kırpma, genişletme, yatay çevirme, normalleştirme, yeniden boyutlandırma Normalleştirme, yeniden boyutlandırma |
Yolov5 kullanarak nesne algılama | Antrenman Doğrulama ve Test |
Mozaik, rastgele afin (döndürme, çeviri, ölçek, kesme), yatay çevirme Letterbox yeniden boyutlandırma |
Deneme ayarlarınızı yapılandırma
En uygun modelleri ve hiper parametreleri aramak için büyük bir tarama yapmadan önce, ilk taban çizgisini almak için varsayılan değerleri denemenizi öneririz. Ardından, birden çok modeli ve parametrelerini incelemeden önce aynı model için birden çok hiper parametreyi keşfedebilirsiniz. Bu şekilde daha yinelemeli bir yaklaşım kullanabilirsiniz çünkü her biri için birden çok model ve birden çok hiper parametre ile arama alanı katlanarak büyür ve en iyi yapılandırmaları bulmak için daha fazla yinelemeye ihtiyacınız olur.
Belirli bir algoritma için varsayılan hiper parametre değerlerini kullanmak istiyorsanız (örneğin yolov5), AutoML Görüntü çalıştırmalarınız için yapılandırmayı aşağıdaki gibi belirtebilirsiniz:
from azureml.train.automl import AutoMLImageConfig
from azureml.train.hyperdrive import GridParameterSampling, choice
from azureml.automl.core.shared.constants import ImageTask
automl_image_config_yolov5 = AutoMLImageConfig(task=ImageTask.IMAGE_OBJECT_DETECTION,
compute_target=compute_target,
training_data=training_dataset,
validation_data=validation_dataset,
hyperparameter_sampling=GridParameterSampling({'model_name': choice('yolov5')}),
iterations=1)
Bir temel model derledikten sonra, model algoritmasını ve hiper parametre alanını süpürmek için model performansını iyileştirmek isteyebilirsiniz. En uygun birincil ölçüme sahip bir model oluşturmak üzere learning_rate, iyileştirici, lr_scheduler vb. için bir değer aralığından seçim yaparak her algoritmanın hiper parametreleri üzerinde tarama yapmak için aşağıdaki örnek yapılandırmayı kullanabilirsiniz. Hiper parametre değerleri belirtilmezse, belirtilen algoritma için varsayılan değerler kullanılır.
Birincil ölçüm
Model iyileştirme ve hiper parametre ayarlama için kullanılan birincil ölçüm, görev türüne bağlıdır. Diğer birincil ölçüm değerlerinin kullanılması şu anda desteklenmemektedir.
accuracy
IMAGE_CLASSIFICATION içiniou
IMAGE_CLASSIFICATION_MULTILABEL içinmean_average_precision
IMAGE_OBJECT_DETECTION içinmean_average_precision
IMAGE_INSTANCE_SEGMENTATION için
Deneme bütçesi
İsteğe bağlı olarak, denemenin sonlandırılabilmesi için saat cinsinden süreyi kullanarak experiment_timeout_hours
AutoML Görüntü İşleme denemeniz için maksimum zaman bütçesini belirtebilirsiniz. Belirtilmemişse, varsayılan deneme zaman aşımı yedi gündür (en fazla 60 gün).
Modeliniz için hiper parametreleri süpürme
Görüntü işleme modellerini eğitirken, model performansı büyük ölçüde seçilen hiper parametre değerlerine bağlıdır. Çoğu zaman, en iyi performansı elde etmek için hiper parametreleri ayarlamak isteyebilirsiniz. Otomatik ML'deki görüntü işleme görevlerine yönelik destekle, modeliniz için en uygun ayarları bulmak için hiper parametreleri süpürebilirsiniz. Bu özellik, Azure Machine Learning'deki hiper parametre ayarlama özelliklerini uygular. Hiper parametreleri ayarlamayı öğrenin.
Parametre arama alanını tanımlama
Parametre alanını süpürmek için model algoritmalarını ve hiper parametreleri tanımlayabilirsiniz.
- Her görev türü için desteklenen model algoritmaları listesi için bkz. Model algoritmalarını ve hiper parametreleri yapılandırma.
- Bkz. Her görüntü işleme görev türü için görüntü işleme görevleri hiper parametreleri için hiper parametreler.
- Ayrık ve sürekli hiper parametreler için desteklenen dağıtımlarla ilgili ayrıntılara bakın.
Süpürme için örnekleme yöntemleri
Hiper parametreleri süpürürken, tanımlanan parametre alanını süpürmek için kullanılacak örnekleme yöntemini belirtmeniz gerekir. Şu anda parametresiyle hyperparameter_sampling
aşağıdaki örnekleme yöntemleri desteklenmektedir:
Not
Şu anda yalnızca rastgele ve kılavuz örnekleme koşullu hiper parametre alanlarını destekler.
Erken sonlandırma ilkeleri
Kötü performans gösteren çalıştırmaları otomatik olarak erken sonlandırma ilkesiyle sonlandırabilirsiniz. Erken sonlandırma işlem verimliliğini artırarak daha az umut verici yapılandırmalar için harcanabilecek işlem kaynaklarının tasarrufunu sağlar. Görüntüler için otomatik ML, parametresini early_termination_policy
kullanarak aşağıdaki erken sonlandırma ilkelerini destekler. Sonlandırma ilkesi belirtilmezse, tüm yapılandırmalar tamamlanmak üzere çalıştırılır.
Hiper parametre taramanız için erken sonlandırma ilkesini yapılandırma hakkında daha fazla bilgi edinin.
Süpürme için kaynaklar
Süpürme için ve değerini belirterek hiper parametre süpürmenize harcanan iterations
max_concurrent_iterations
kaynakları denetleyebilirsiniz.
Parametre | Ayrıntı |
---|---|
iterations |
Süpürecek en fazla yapılandırma sayısı için gerekli parametre. 1 ile 1000 arasında bir tamsayı olmalıdır. Belirli bir model algoritması için yalnızca varsayılan hiper parametreleri keşfederken bu parametreyi 1 olarak ayarlayın. |
max_concurrent_iterations |
Eşzamanlı olarak çalışabilecek en fazla çalıştırma sayısı. Belirtilmezse, tüm çalıştırmalar paralel olarak başlatılır. Belirtilirse, 1 ile 100 arasında bir tamsayı olmalıdır. NOT: Belirtilen işlem hedefinde kullanılabilen kaynaklara eş zamanlı çalıştırma sayısı eklenir. İşlem hedefinin istenen eşzamanlılık için kullanılabilir kaynaklara sahip olduğundan emin olun. |
Not
Eksiksiz bir süpürme yapılandırma örneği için lütfen bu öğreticiye bakın.
Bağımsız değişkenler
Parametre alanı süpürme sırasında değişmeyen sabit ayarları veya parametreleri bağımsız değişken olarak geçirebilirsiniz. Bağımsız değişkenler ad-değer çiftlerinde geçirilir ve adın önüne çift tire eklenmelidir.
from azureml.train.automl import AutoMLImageConfig
arguments = ["--early_stopping", 1, "--evaluation_frequency", 2]
automl_image_config = AutoMLImageConfig(arguments=arguments)
Artımlı eğitim (isteğe bağlı)
Eğitim çalıştırması tamamlandıktan sonra eğitilen model denetim noktasını yükleyerek modeli daha fazla eğitebilirsiniz. Artımlı eğitim için aynı veri kümesini veya farklı bir veri kümesini kullanabilirsiniz.
Artımlı eğitim için iki seçenek vardır. Şunları yapabilirsiniz,
- Denetim noktasını yüklemek istediğiniz çalıştırma kimliğini geçirin.
- Denetim noktalarını bir FileDataset aracılığıyla geçirin.
Denetim noktasını çalıştırma kimliği aracılığıyla geçirme
İstenen modelden çalıştırma kimliğini bulmak için aşağıdaki kodu kullanabilirsiniz.
# find a run id to get a model checkpoint from
target_checkpoint_run = automl_image_run.get_best_child()
Çalıştırma kimliği aracılığıyla bir denetim noktası geçirmek için parametresini checkpoint_run_id
kullanmanız gerekir.
automl_image_config = AutoMLImageConfig(task='image-object-detection',
compute_target=compute_target,
training_data=training_dataset,
validation_data=validation_dataset,
checkpoint_run_id= target_checkpoint_run.id,
primary_metric='mean_average_precision',
**tuning_settings)
automl_image_run = experiment.submit(automl_image_config)
automl_image_run.wait_for_completion(wait_post_processing=True)
Denetim noktasını FileDataset aracılığıyla geçirme
FileDataset aracılığıyla bir denetim noktası geçirmek için ve checkpoint_filename
parametrelerini kullanmanız checkpoint_dataset_id
gerekir.
# download the checkpoint from the previous run
model_name = "outputs/model.pt"
model_local = "checkpoints/model_yolo.pt"
target_checkpoint_run.download_file(name=model_name, output_file_path=model_local)
# upload the checkpoint to the blob store
ds.upload(src_dir="checkpoints", target_path='checkpoints')
# create a FileDatset for the checkpoint and register it with your workspace
ds_path = ds.path('checkpoints/model_yolo.pt')
checkpoint_yolo = Dataset.File.from_files(path=ds_path)
checkpoint_yolo = checkpoint_yolo.register(workspace=ws, name='yolo_checkpoint')
automl_image_config = AutoMLImageConfig(task='image-object-detection',
compute_target=compute_target,
training_data=training_dataset,
validation_data=validation_dataset,
checkpoint_dataset_id= checkpoint_yolo.id,
checkpoint_filename='model_yolo.pt',
primary_metric='mean_average_precision',
**tuning_settings)
automl_image_run = experiment.submit(automl_image_config)
automl_image_run.wait_for_completion(wait_post_processing=True)
Çalıştırmayı gönderme
Nesneniz AutoMLImageConfig
hazır olduğunda denemeyi gönderebilirsiniz.
ws = Workspace.from_config()
experiment = Experiment(ws, "Tutorial-automl-image-object-detection")
automl_image_run = experiment.submit(automl_image_config)
Çıkışlar ve değerlendirme ölçümleri
Otomatik ML eğitim çalıştırmaları çıkış modeli dosyaları, değerlendirme ölçümleri, günlükler ve puanlama dosyası gibi dağıtım yapıtları ve alt çalıştırmaların çıkışlar ve günlükler ile ölçümler sekmesinden görüntülenebilen ortam dosyası oluşturur.
Her çalıştırma için sağlanan performans grafiklerinin ve ölçümlerinin tanımları ve örnekleri için bkz . Otomatik makine öğrenmesi denemesi sonuçlarını değerlendirme
Modeli kaydetme ve dağıtma
Çalıştırma tamamlandıktan sonra, en iyi çalıştırmadan oluşturulan modeli kaydedebilirsiniz (en iyi birincil ölçümle sonuçlanan yapılandırma)
best_child_run = automl_image_run.get_best_child()
model_name = best_child_run.properties['model_name']
model = best_child_run.register_model(model_name = model_name, model_path='outputs/model.pt')
Kullanmak istediğiniz modeli kaydettikten sonra Azure Container Instances (ACI) veya Azure Kubernetes Service (AKS) üzerinde bir web hizmeti olarak dağıtabilirsiniz. ACI, dağıtımları test etme için mükemmel bir seçenekken AKS, yüksek ölçekli üretim kullanımı için daha uygundur.
Bu örnek, modeli AKS'de bir web hizmeti olarak dağıtır. AKS'de dağıtmak için önce bir AKS işlem kümesi oluşturun veya var olan bir AKS kümesini kullanın. Dağıtım kümeniz için GPU veya CPU VM SKU'larını kullanabilirsiniz.
from azureml.core.compute import ComputeTarget, AksCompute
from azureml.exceptions import ComputeTargetException
# Choose a name for your cluster
aks_name = "cluster-aks-gpu"
# Check to see if the cluster already exists
try:
aks_target = ComputeTarget(workspace=ws, name=aks_name)
print('Found existing compute target')
except ComputeTargetException:
print('Creating a new compute target...')
# Provision AKS cluster with GPU machine
prov_config = AksCompute.provisioning_configuration(vm_size="STANDARD_NC6",
location="eastus2")
# Create the cluster
aks_target = ComputeTarget.create(workspace=ws,
name=aks_name,
provisioning_configuration=prov_config)
aks_target.wait_for_completion(show_output=True)
Ardından, modelinizi içeren web hizmetini ayarlamayı açıklayan çıkarım yapılandırmasını tanımlayabilirsiniz. Puanlama betiğini ve eğitim çalıştırmasından ortamı çıkarım yapılandırmanızda kullanabilirsiniz.
from azureml.core.model import InferenceConfig
best_child_run.download_file('outputs/scoring_file_v_1_0_0.py', output_file_path='score.py')
environment = best_child_run.get_environment()
inference_config = InferenceConfig(entry_script='score.py', environment=environment)
Ardından modeli AKS web hizmeti olarak dağıtabilirsiniz.
# Deploy the model from the best run as an AKS web service
from azureml.core.webservice import AksWebservice
from azureml.core.webservice import Webservice
from azureml.core.model import Model
from azureml.core.environment import Environment
aks_config = AksWebservice.deploy_configuration(autoscale_enabled=True,
cpu_cores=1,
memory_gb=50,
enable_app_insights=True)
aks_service = Model.deploy(ws,
models=[model],
inference_config=inference_config,
deployment_config=aks_config,
deployment_target=aks_target,
name='automl-image-test',
overwrite=True)
aks_service.wait_for_deployment(show_output=True)
print(aks_service.state)
Alternatif olarak, modeli Azure Machine Learning stüdyosu kullanıcı arabiriminden dağıtabilirsiniz. Otomatik ML çalıştırmasının Modeller sekmesinde dağıtmak istediğiniz modele gidin ve Dağıt'ı seçin.
Model dağıtımı uç noktası adını ve çıkarım kümesini model dağıtımınız için kullanmak üzere Model dağıtma bölmesinde yapılandırabilirsiniz.
Çıkarım yapılandırmasını güncelleştirme
Önceki adımda, puanlama dosyasını outputs/scoring_file_v_1_0_0.py
en iyi modelden yerel score.py
bir dosyaya indirdik ve nesne oluşturmak InferenceConfig
için kullandık. Bu betik, indirildikten sonra ve oluşturmadan InferenceConfig
önce modele özgü çıkarım ayarlarını değiştirmek için değiştirilebilir. Örneğin, bu, puanlama dosyasındaki modeli başlatan kod bölümüdür:
...
def init():
...
try:
logger.info("Loading model from path: {}.".format(model_path))
model_settings = {...}
model = load_model(TASK_TYPE, model_path, **model_settings)
logger.info("Loading successful.")
except Exception as e:
logging_utilities.log_traceback(e, logger)
raise
...
Görevlerin (ve bazı modellerin) sözlükte model_settings
bir dizi parametresi vardır. Varsayılan olarak, eğitim ve doğrulama sırasında kullanılan parametreler için aynı değerleri kullanırız. Modeli çıkarım için kullanırken ihtiyacımız olan davranışa bağlı olarak, bu parametreleri değiştirebiliriz. Aşağıda her görev türü ve modeli için parametrelerin listesini bulabilirsiniz.
Görev | Parametre adı | Varsayılan |
---|---|---|
Görüntü sınıflandırması (çok sınıflı ve çok etiketli) | valid_resize_size valid_crop_size |
Kategori 256 224 |
Nesne algılama | min_size max_size box_score_thresh nms_iou_thresh box_detections_per_img |
600 1333 0.3 0,5 100 |
kullanarak nesne algılama yolov5 |
img_size model_size box_score_thresh nms_iou_thresh |
640 orta 0,1 0,5 |
Örneği segmentlere ayırma | min_size max_size box_score_thresh nms_iou_thresh box_detections_per_img mask_pixel_score_threshold max_number_of_polygon_points export_as_image image_type |
600 1333 0.3 0,5 100 0,5 100 False JPG |
Göreve özgü hiper parametrelerle ilgili ayrıntılı bir açıklama için otomatik makine öğrenmesindeki görüntü işleme görevleri için hiper parametreler konusuna bakın.
Döşeme kullanmak ve döşeme davranışını denetlemek istiyorsanız, aşağıdaki parametreler kullanılabilir: tile_grid_size
, tile_overlap_ratio
ve tile_predictions_nms_thresh
. Bu parametreler hakkında daha fazla bilgi için lütfen AutoML kullanarak küçük bir nesne algılama modelini eğitme konusuna bakın.
Örnek not defterleri
Otomatik makine öğrenimi örnekleri için GitHub not defteri deposundaki ayrıntılı kod örneklerini ve kullanım örneklerini inceleyin. Görüntü işleme modelleri oluşturmaya özgü örnekler için lütfen 'image-' ön ekine sahip klasörleri denetleyin.
Sonraki adımlar
- Öğretici: AutoML ve Python ile nesne algılama modelini eğitme.
- AutoML'den görüntü işleme modellerinde ONNX ile tahmin yapma
- Otomatik ML denemelerinin sorunlarını giderme.