Aracılığıyla paylaş


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

    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 AutoMLImageConfigparametresi 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 AutoMLImageConfigkullanı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 dizimi
default_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ınmodel_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çin
  • iou IMAGE_CLASSIFICATION_MULTILABEL için
  • mean_average_precision IMAGE_OBJECT_DETECTION için
  • mean_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.

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.

İpucu

Çalıştırma sonuçlarını görüntüle bölümünden iş sonuçlarına nasıl gid yapılacağını denetleyin.

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.

Studio kullanıcı arabiriminde automl çalıştırmalarından model seçme

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.

Yapılandırmayı dağıtma

Çı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