Görüntü işleme modellerini eğitmek için AutoML'yi ayarlama

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)

Bu makalede, otomatik ML kullanarak görüntü verileri üzerinde görüntü işleme modellerini eğitmeyi öğreneceksiniz. Azure Machine Learning CLI uzantısı v2 veya Azure Machine Learning Python SDK v2'yi kullanarak modelleri eğitebilirsiniz.

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 modellerinin yazılması şu anda Azure Machine Learning Python SDK'sı aracılığıyla desteklenmektedir. Sonuçta elde edilen deneme denemelerine, modellerine ve çıkışlarına Azure Machine Learning Stüdyosu kullanıcı arabiriminden erişebilirsiniz. Görüntü verilerinde görüntü işleme görevleri için otomatik ml hakkında daha fazla bilgi edinin.

Önkoşullar

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

  • Azure Machine Learning çalışma alanı. Çalışma alanını oluşturmak için bkz . Çalışma alanı kaynakları oluşturma.
  • CLI'yi (v2) yükleyin ve kurun ve ml uzantısının yüklendiğinden emin olun.

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ü AutoML Görevi söz dizimi
görüntü sınıflandırması CLI v2: image_classification
SDK v2: image_classification()
görüntü sınıflandırması çok etiketli CLI v2: image_classification_multilabel
SDK v2: image_classification_multilabel()
görüntü nesnesi algılama CLI v2: image_object_detection
SDK v2: image_object_detection()
görüntü örneği segmentasyonu CLI v2: image_instance_segmentation
SDK v2: image_instance_segmentation()

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

Görev türünü gerekli bir parametre olarak ayarlayın. Bu parametreyi task ayarlamak için anahtarını kullanın.

Örneğin:

task: image_object_detection

Eğitim ve doğrulama verileri

Bilgisayarla görme modelleri oluşturmak için, bir MLTable biçiminde model eğitimi için giriş olarak etiketlenmiş görüntü verilerini getirin. Eğitim verilerinden JSONL biçiminde bir MLTable oluşturabilirsiniz.

Eğitim verileriniz pascal VOC veya COCO gibi farklı bir biçimdeyse, verileri JSONL'ye dönüştürmek için örnek not defterlerinde bulunan yardımcı betikleri kullanabilirsiniz. Daha fazla bilgi için bkz. Otomatik ML ile görüntü işleme görevleri için verileri hazırlama.

Not

Bir AutoML işi göndermek için eğitim verilerinde en az 10 görüntü olması gerekir.

Uyarı

Bu özellik için SDK ve CLI, JSONL biçiminde verilerden oluşturma MLTable işlemini destekler. MLTable kullanıcı arabirimi aracılığıyla oluşturma şu anda desteklenmiyor.

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.
label Görev türüne göre resim etiketinin json gösterimi.

Aşağıdaki kod, görüntü sınıflandırması için örnek bir JSONL dosyasıdır:

{
      "image_url": "azureml://subscriptions/<my-subscription-id>/resourcegroups/<my-resource-group>/workspaces/<my-workspace>/datastores/<my-datastore>/paths/image_data/Image_01.png",
      "image_details":
      {
          "format": "png",
          "width": "2230px",
          "height": "4356px"
      },
      "label": "cat"
  }
  {
      "image_url": "azureml://subscriptions/<my-subscription-id>/resourcegroups/<my-resource-group>/workspaces/<my-workspace>/datastores/<my-datastore>/paths/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": "azureml://subscriptions/<my-subscription-id>/resourcegroups/<my-resource-group>/workspaces/<my-workspace>/datastores/<my-datastore>/paths/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": "azureml://subscriptions/<my-subscription-id>/resourcegroups/<my-resource-group>/workspaces/<my-workspace>/datastores/<my-datastore>/paths/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

Verilerinizi JSONL biçimine dönüştürdükten sonra, aşağıdaki örnekte gösterildiği gibi eğitim ve doğrulama MLTable dosyaları oluşturun.

paths:
  - file: ./train_annotations.jsonl
transformations:
  - read_json_lines:
        encoding: utf8
        invalid_lines: error
        include_path_column: false
  - convert_column_types:
      - columns: image_url
        column_type: stream_info

Otomatik ML, görüntü işleme görevleri için eğitim veya doğrulama veri boyutuna herhangi bir kısıtlama getirmez. Veri kümesinin arkasındaki depolama katmanı (örneğin blob deposu), en büyük veri kümesi boyutunu ayarlar. Görüntü veya etiket için belirlenmiş bir alt sınır yoktur. Ancak çıkış modelinin yeterince eğitildiğinden emin olmak için etiket başına en az 10 ila 15 örnekle başlayın. Toplam etiket veya sınıf sayısı ne kadar fazlaysa etiket başına o kadar fazla örneğe ihtiyacınız olur.

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

training_data anahtarını kullanarak gerekli eğitim verisi parametresini geçirin. İsteğe bağlı olarak, validation_data anahtarını kullanarak başka bir MLTable'ı doğrulama verileri olarak belirtin. Doğrulama verilerini belirtmezseniz, validation_data_size bağımsız değişkenini farklı bir değerle geçirmediğiniz sürece, eğitim verilerinizin %20'si varsayılan olarak doğrulama için kullanılır.

Gerekli hedef sütun adı parametresini target_column_name anahtarını kullanarak geçirin. Denetimli ML görevinin hedefi olarak bu parametreyi kullanın. Örneğin,

target_column_name: label
training_data:
  path: data/training-mltable-folder
  type: mltable
validation_data:
  path: data/validation-mltable-folder
  type: mltable

Deneyi yürütmek için hesaplama

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'larla) kullanın. Çok GPU'lu VM SKU'su olan bir işlem hedefi, eğitimi hızlandırmak için birden çok GPU 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ışmadığından emin olun. Ayrıca, max_concurrent_trials'nin iş sınırlarınızda 1 olarak ayarlandığından emin olun.

compute parametresini kullanarak işlem hedefini geçirin. Örneğin:

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

compute: azureml:gpu-cluster

Denemeleri yapılandırma

Görüntü işleme görevleri için tek tek denemeler, el ile süpürmeler veya otomatik süpürmeler başlatabilirsiniz. İlk taban çizgisi modelini elde etmek için otomatik tarama ile başlayın. Ardından, belirli modellerle ve hiper parametre yapılandırmalarıyla tek tek denemeleri deneyin. Son olarak, daha umut verici modellerin ve hiperparametre yapılandırmalarının yakınında birden çok hiperparametre değerini keşfetmek için el ile taramaları kullanın. Bu üç adımlı iş akışı (otomatik süpürme, bireysel denemeler, manuel süpürmeler), hiperparametre sayısının artışına bağlı olarak katlanarak büyüyen hiperparametre alanında tamamen arama yapmayı önler.

Otomatik süpürmeler birçok veri kümesi için rekabetçi sonuçlar verebilir. Ayrıca, model mimarileri hakkında gelişmiş bilgi gerektirmezler. Hiper parametre bağıntılarını dikkate alır ve farklı donanım kurulumlarında sorunsuz çalışırlar. Tüm bu nedenler, bunları deneme sürecinizin ilk aşaması için güçlü bir seçenek haline getirir.

Birincil metrik

AutoML eğitim işi, model iyileştirme ve hiperparametre ayarlama için birincil metriği kullanır. Birincil ölçüm, aşağıdaki listede gösterildiği gibi görev türüne bağlıdır. Diğer birincil ölçüm değerleri şu anda desteklenmemektedir.

İş sınırları

Aşağıdaki örnekte açıklandığı gibi sınır ayarlarında timeout_minutes, max_trials ve max_concurrent_trials belirterek AutoML Görüntü eğitim işinizde harcanan kaynakları kontrol edebilirsiniz.

Parametre Ayrıntı
max_trials Tarama için en fazla deneme sayısı parametresi. 1 ile 1.000 arasında bir tamsayı olmalıdır. Belirli bir model mimarisi için yalnızca varsayılan hiper parametreleri incelediğinizde, bu parametreyi 1 olarak ayarlayın. Varsayılan değer 1 şeklindedir.
max_concurrent_trials Eşzamanlı olarak çalışan en fazla deneme sayısı. Belirtilirse, 1 ile 100 arasında bir tamsayı olmalıdır. Varsayılan değer 1 şeklindedir.

NOT:
  • Eş zamanlı deneme sayısı, belirtilen işlem hedefinde kullanılabilir kaynaklara bağlıdır. İşlem hedefinin istenen eşzamanlılık için kullanılabilir kaynaklara sahip olduğundan emin olun.
  • max_concurrent_trials dahili olarak max_trials ile sınırlandırılır. Örneğin, max_concurrent_trials=4 ve max_trials=2 ayarlarsanız, değerler dahili olarak max_concurrent_trials=2 ve max_trials=2 olarak güncellenir.
  • timeout_minutes Denemenin sona ermesi için dakika cinsinden süre. Bir değer belirtmezseniz, varsayılan deneme timeout_minutes yedi gündür (en fazla 60 gün).

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    limits:
      timeout_minutes: 60
      max_trials: 10
      max_concurrent_trials: 2
    

    Model hiperparametrelerini otomatik olarak tarama (AutoMode)

    Ö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ı.

    Bir veri kümesi için en iyi model mimarisini ve hiper parametreleri tahmin etmek zordur. Ayrıca, bazı durumlarda hiper parametreleri ayarlamak için ayrılan insan süresi sınırlıdır. Görüntü işleme görevleri için istediğiniz sayıda deneme belirtebilirsiniz ve sistem süpürme için hiper parametre alanının bölgesini otomatik olarak belirler. Hiper parametre arama alanı, örnekleme yöntemi veya erken sonlandırma ilkesi tanımlamanız gerekmez.

    AutoMode'un tetiklenmesi

    Birden büyük bir değere max_trials ayarlayarak ve limits arama alanını, örnekleme yöntemini ve sonlandırma ilkesini belirtmeyerek otomatik süpürmeler yapın. Bu işlev AutoMode işlevidir. Aşağıdaki örneğe bakın.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    limits:
      max_trials: 10
      max_concurrent_trials: 2
    

    10 ile 20 arasında deneme sürümü çalıştırmak birçok veri kümesinde iyi çalışır. Yine de AutoML işi için zaman bütçesini ayarlayabilirsiniz, ancak bu değeri yalnızca her denemenin uzun sürmesi durumunda ayarlayabilirsiniz.

    Uyarı

    Kullanıcı arabirimi şu anda otomatik süpürme başlatmayı desteklememektedir.

    Bireysel denemeler

    Tek tek denemelerde, model mimarisini ve hiper parametreleri doğrudan denetlersiniz. Model mimarisini model_name parametresi üzerinden geçirin.

    Desteklenen model mimarileri

    Aşağıdaki tabloda, her görüntü işleme görevi için desteklenen eski modeller özetlenmektedir. Yalnızca bu eski modellerin kullanılması, her bir çalıştırmanın veya denemenin bir komut işi olarak gönderildiği eski çalışma zamanını kullanan çalıştırmaları tetikler. HuggingFace ve MMDetection desteği hakkında bilgi için sonraki bölüme bakın.

    Görev Model yapılandırmaları Dize sabit söz dizimi
    default_model* * ile belirtilir
    Resim sınıflandırması
    (çok sınıflı ve çok etiketli)
    MobileNet: Mobil uygulamalar için basit modeller
    ResNet: Artık Bağlantılı Ağlar
    ResNeSt: Dikkat ağlarını bölme
    SE-ResNeXt50: Sıkma ve Uyarma (Squeeze-and-Excitation) 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 model_sizehiperparametreye bakın.
    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

    Desteklenen model mimarileri - HuggingFace ve MMDetection

    Azure Machine Learning işlem hatlarında çalışan yeni arka ucu kullanarak, transformatör kitaplığının parçası olan HuggingFace Hub'daki herhangi bir görüntü sınıflandırma modelini kullanabilirsiniz (örneğin, microsoft/beit-base-patch16-224). MMDetection Sürüm 3.1.0 Model Deposu'ndan (örneğinatss_r50_fpn_1x_coco) herhangi bir nesne tespit veya örnek bölütleme modelini de kullanabilirsiniz.

    HuggingFace Transformers ve MMDetection 3.1.0 modellerini desteklemeye ek olarak, Azure Machine Learning kayıt defteri bu kitaplıklardan seçilmiş modellerin bir listesini sunar. Bu seçilmiş modeller kapsamlı bir şekilde test edilir ve etkili bir eğitim sağlamak için kapsamlı karşılaştırmadan seçilen varsayılan hiper parametreleri kullanır. Aşağıdaki tabloda bu seçilmiş modeller özetlemektedir.

    Görev Model yapılandırmaları Dize sabiti sözdizimi
    Resim sınıflandırması
    (çok sınıflı ve çok etiketli)
    BEiT
    ViT
    DeiT
    SwinV2
    microsoft/beit-base-patch16-224-pt22k-ft22k
    google/vit-base-patch16-224
    facebook/deit-base-patch16-224
    microsoft/swinv2-base-patch4-window12-192-22k
    Nesne Algılama Sparse R-CNN
    Deforme Edilebilir DETR
    VFNet
    YOLOF
    mmd-3x-sparse-rcnn_r50_fpn_300-proposals_crop-ms-480-800-3x_coco
    mmd-3x-sparse-rcnn_r101_fpn_300-proposals_crop-ms-480-800-3x_coco
    mmd-3x-deformable-detr_refine_twostage_r50_16xb2-50e_coco
    mmd-3x-vfnet_r50-mdconv-c3-c5_fpn_ms-2x_coco
    mmd-3x-vfnet_x101-64x4d-mdconv-c3-c5_fpn_ms-2x_coco
    mmd-3x-yolof_r50_c5_8x8_1x_coco
    Nesne Bölütleme Maske R-CNN mmd-3x-mask-rcnn_swin-t-p4-w7_fpn_1x_coco

    Seçilen modellerin listesi sürekli olarak güncelleştirilir. Python SDK'sını kullanarak belirli bir görev için en güncel özenle seçilmiş modeller listesini alabilirsiniz.

    from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential
    
    try:
        credential = DefaultAzureCredential()
        credential.get_token("https://management.azure.com/.default")
    except Exception:
        credential = InteractiveBrowserCredential()
    ml_client = MLClient(credential, registry_name="azureml")
    
    models = ml_client.models.list()
    classification_models = []
    for model in models:
        model = ml_client.models.get(model.name, label="latest")
        if model.tags['task'] == 'image-classification': # choose an image task
            classification_models.append(model.name)
    
    classification_models
    

    Çıktı:

    ['google-vit-base-patch16-224',
     'microsoft-swinv2-base-patch4-window12-192-22k',
     'facebook-deit-base-patch16-224',
     'microsoft-beit-base-patch16-224-pt22k-ft22k']
    

    HuggingFace veya MMDetection modelini kullanmak, işlem hattı bileşenlerini kullanan çalışmaları tetikler. Hem eski hem de HuggingFace/MMdetection modellerini kullanıyorsanız, tüm çalıştırmalar ve denemeler bileşenleri kullanır.

    Model mimarisini 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, bazı hiper parametreler göreve veya modele özgü olur. Bu örnekler için kullanılabilir hiper parametreler hakkında daha fazla bilgi edinin.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    Belirli bir mimari, örneğin yolov5, için varsayılan hiperparametre değerlerini kullanmak amacıyla, model_name anahtarını training_parameters bölümünde belirterek mimariyi tanımlayın. Örneğin,

    training_parameters:
        model_name: yolov5
    

    Model hiperparametreleri manuel tarama

    Görüntü işleme modellerini eğitirken model performansı büyük ölçüde seçtiğiniz hiper parametre değerlerine bağlıdır. Çoğu zaman, en iyi performansı elde etmek için hiper parametreleri ayarlamanız gerekir. Görüntü işleme görevleri için hiper parametreleri süpürerek modeliniz için en uygun ayarları bulabilirsiniz. Bu özellik, Azure Machine Learning'deki hiper parametre ayarlama özelliklerini uygular. Hiper parametreleri ayarlamayı öğrenin.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    search_space:
      - model_name:
          type: choice
          values: [yolov5]
        learning_rate:
          type: uniform
          min_value: 0.0001
          max_value: 0.01
        model_size:
          type: choice
          values: [small, medium]
    
      - model_name:
          type: choice
          values: [fasterrcnn_resnet50_fpn]
        learning_rate:
          type: uniform
          min_value: 0.0001
          max_value: 0.001
        optimizer:
          type: choice
          values: [sgd, adam, adamw]
        min_size:
          type: choice
          values: [600, 800]
    

    Parametre arama alanını tanımlama

    Parametre alanını süpürmek için model mimarilerini ve hiper parametreleri tanımlayın. Tek bir model mimarisi veya birden çok mimari belirtebilirsiniz.

    Süpürme için örnekleme yöntemleri

    Hiper parametreleri süpürürken, tanımlanan parametre alanı üzerinde süpürme için kullanılacak örnekleme yöntemini belirtin. Şu anda sampling_algorithm parametresi aşağıdaki örnekleme yöntemlerini destekler:

    Örnekleme türü AutoML Görev sentaksı
    Rastgele Örnekleme random
    Kılavuz Örnekleme grid
    Bayes örneklemesi bayesian

    Not

    Şu anda yalnızca rastgele ve kılavuz örnekleme koşullu hiper parametre alanlarını destekler.

    Erken sonlandırma ilkeleri

    Erken sonlandırma ilkesi kullanarak kötü performans gösteren denemeleri otomatik olarak sonlandır. Erken sonlandırma, aksi takdirde daha az umut verici denemelere harcanabilecek işlem kaynaklarını koruyarak hesaplama verimliliğini artırır. Görüntüler için otomatik ML, parametresini early_termination kullanarak aşağıdaki erken sonlandırma ilkelerini destekler. Sonlandırma politikası belirtmezseniz, tüm denemeler tamamlanıncaya kadar çalışır.

    Erken sonlandırma ilkesi AutoML Görevi söz dizimi
    Bandit politikası CLI v2: bandit
    SDK v2: BanditPolicy()
    Ortanca durdurma ilkesi CLI v2: median_stopping
    SDK v2: MedianStoppingPolicy()
    Kesme seçimi ilkesi CLI v2: truncation_selection
    SDK v2: TruncationSelectionPolicy()

    Daha fazla bilgi için bkz. Hiperparametre taramanız için erken sonlandırma politikasını yapılandırma.

    Not

    Eksiksiz bir süpürme yapılandırma örneği için bkz. kılavuz.

    Aşağıdaki örnekte gösterildiği gibi süpürmeyle ilgili tüm parametreleri yapılandırabilirsiniz.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    sweep:
      sampling_algorithm: random
      early_termination:
        type: bandit
        evaluation_interval: 2
        slack_factor: 0.2
        delay_evaluation: 6
    

    Sabit ayarlar

    Aşağıdaki örnekte gösterildiği gibi parametre alanı süpürme sırasında değişmeyen sabit ayarları veya parametreleri geçirin.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    training_parameters:
      early_stopping: True
      evaluation_frequency: 1
    

    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ırmak için pratik bir tekniktir. Bu teknik fazla uygunluğu önlemeye yardımcı olur ve modelin görünmeyen verilerde genelleştirme özelliğini geliştirir. 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 hiçbir hiper parametre veri artırmalarını denetlemez.

    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) Eğitim


    Doğrulama ve test
    Kanal açısından ImageNet'in ortalama ve standart sapması kullanılarak rastgele yeniden boyutlandırma ve kırpma, yatay çevirme, renk dalgalanması (parlaklık, karşıtlık, doygunluk ve ton), normalleştirme


    Yeniden boyutlandırma, merkezden kırpma, normalleştirme
    Nesne algılama, örnek segmentasyonu Eğitim

    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 Eğitim

    Doğrulama ve test
    Mozaik, rastgele afin (döndürme, kaydırma, ölçek, kesme), yatay çevirme


    Letterbox yeniden boyutlandırma

    Model, görüntü işi için Otomatik ML için varsayılan olarak önceki tabloda tanımlanan artırmaları uygular. Görüntüler için Otomatik ML, artırmalar üzerinde denetim sağlamak amacıyla belirli artırmaları kapatmak için aşağıdaki iki işareti kullanıma sunar. Şu anda bu bayraklar yalnızca nesne algılama ve örnek segmentasyon görevlerini destekler.

    1. apply_mosaic_for_yolo: Bu bayrak Yolo modeline özgüdür. Mozaik veri büyütmeyi kapatmak için False olarak ayarlayın. Model bu artırmayı eğitim zamanında uygular.
    2. apply_automl_train_augmentations: Nesne algılama ve örnek segmentasyonu modellerinde modelin eğitim zamanında uyguladığı artırmayı kapatmak için bu bayrağı false olarak ayarlayın. Artırmalar için yukarıdaki tabloda yer alan ayrıntılara bakın.
      • yolo olmayan nesne tespiti modeli ve örnek segmentasyon modelleri için, bu bayrak yalnızca ilk üç artırmayı kapatır. Örneğin: Sınırlayıcı kutuların çevresinde rastgele kırpma, genişletme, yatay çevirme. Bu bayrak ne olursa olsun, normalleştirme ve yeniden boyutlandırma artırmaları uygulanmaya devam eder.
      • Yolo modeli için bu bayrak rastgele benek ve yatay çevirme büyütmelerini kapatır.

    bu iki bayrağı training_parameters altındaadvanced_settings aracılığıyla ayarlayabilirsiniz.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    training_parameters:
      advanced_settings: >
        {"apply_mosaic_for_yolo": false}
    
    training_parameters:
      advanced_settings: >
        {"apply_automl_train_augmentations": false}
    

    Bu iki bayrak birbirinden bağımsızdır. Aşağıdaki ayarları kullanarak bunları birlikte de kullanabilirsiniz.

    training_parameters:
     advanced_settings: >
       {"apply_automl_train_augmentations": false, "apply_mosaic_for_yolo": false}
    

    Denemelerimizde bu iyileştirmeler modelin daha iyi genelleştirilmesine yardımcı olur. Bu artırmaları kapatırsanız, daha iyi sonuçlar elde etmek için bunları diğer çevrimdışı artırmalarla birleştirin.

    Artımlı eğitim (isteğe bağlı)

    Eğitim işi 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 kullanın. Modelden memnunsanız eğitimi durdurun ve geçerli modeli kullanın.

    İş kimliğiyle denetim noktasını geç

    Denetim noktasını yüklemek için görev kimliğini geçirin.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    training_parameters:
      checkpoint_run_id : "target_checkpoint_run_id"
    

    AutoML işini gönderme

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    AutoML işinizi göndermek için .yml dosyanızın, çalışma alanı adınızın, kaynak grubunuzun ve abonelik kimliğinizin yolunu içeren aşağıdaki CLI v2 komutunu çalıştırın.

    az ml job create --file ./hello-automl-job-basic.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
    

    Çıkışlar ve değerlendirme ölçümleri

    Otomatik ML eğitim işi çıkış modeli dosyaları, değerlendirme ölçümleri, günlükler ve puanlama dosyası ve ortam dosyası gibi dağıtım yapıtları oluşturur. Bu dosyaları ve ölçümleri alt işlerin çıkışlar, günlükler ve ölçümler sekmesinden görüntüleyebilirsiniz.

    İpucu

    İş sonuçlarını görüntüle bölümüne giderek iş sonuçlarına nasıl gidileceğini kontrol edin.

    Her iş için sağlanan performans grafiklerinin ve ölçümlerin tanımları ve örnekleri için bkz . Otomatik makine öğrenmesi denemesi sonuçlarını değerlendirme.

    Modeli kaydetme ve dağıtma

    İş tamamlandığında, en iyi deneme sürümünden oluşturulan modeli kaydedin (en iyi birincil ölçümle sonuçlanan yapılandırma). Modeli indirdikten sonra veya ilgili iş kimliğiyle azureml yolunu belirterek kaydedebilirsiniz. Çıkarım ayarlarını değiştirmek istiyorsanız modeli indirin, değiştirin settings.jsonve güncelleştirilmiş model klasörünü kaydedin.

    En iyi deneme sürümünü edinin

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    CLI example not available, please use Python SDK.
    

    Modeli kaydedin

    Azureml yolunu veya yerel olarak indirdiğiniz yolu kullanarak modeli kaydedin.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

     az ml model create --name od-fridge-items-mlflow-model --version 1 --path azureml://jobs/$best_run/outputs/artifacts/outputs/mlflow-model/ --type mlflow_model --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
    

    Modeli kaydettikten sonra yönetilen çevrimiçi uç nokta deploy-managed-online-endpoint kullanarak dağıtabilirsiniz.

    Çevrimiçi uç noktayı yapılandırma

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    $schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
    name: od-fridge-items-endpoint
    auth_mode: key
    

    Uç noktayı oluşturma

    Çalışma alanında uç noktayı oluşturmak için daha önce oluşturulmuş MLClient olan öğesini kullanın. Bu komut uç nokta oluşturmayı başlatır ve uç nokta oluşturma işlemi devam ederken bir onay yanıtı döndürür.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    az ml online-endpoint create --file .\create_endpoint.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
    

    Çevrimiçi dağıtımı yapılandırma

    Dağıtım, gerçek çıkarım yapan modeli barındırmak için gereken bir kaynak kümesidir. sınıfını ManagedOnlineDeployment kullanarak uç noktanız için bir dağıtım oluşturun. Dağıtım kümeniz için GPU veya CPU VM sürümlerini kullanabilirsiniz.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    name: od-fridge-items-mlflow-deploy
    endpoint_name: od-fridge-items-endpoint
    model: azureml:od-fridge-items-mlflow-model@latest
    instance_type: Standard_DS3_v2
    instance_count: 1
    liveness_probe:
        failure_threshold: 30
        success_threshold: 1
        timeout: 2
        period: 10
        initial_delay: 2000
    readiness_probe:
        failure_threshold: 10
        success_threshold: 1
        timeout: 10
        period: 10
        initial_delay: 2000 
    

    Dağıtımı oluştur

    Daha önce oluşturduğunuz MLClient çalışma alanında dağıtımı oluşturmak için kullanın. Bu komut dağıtım oluşturmayı başlatır ve dağıtım oluşturma işlemi devam ederken bir onay yanıtı döndürür.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    az ml online-deployment create --file .\create_deployment.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
    

    Trafiği güncelleştirme

    Varsayılan olarak, geçerli dağıtım 0% trafik alacak şekilde ayarlanır. Trafik yüzdesini, mevcut dağıtımın alması gereken şekilde ayarlayın. Bir uç noktaya sahip tüm dağıtımların trafik yüzdelerinin toplamı 100%aşamaz.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    az ml online-endpoint update --name 'od-fridge-items-endpoint' --traffic 'od-fridge-items-mlflow-deploy=100' --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
    

    Alternatif olarak, modeli Azure Machine Learning stüdyosu kullanıcı arabiriminden dağıtabilirsiniz. Otomatik ML işinin Modeller sekmesinde dağıtmak istediğiniz modele gidin. Dağıt'ı ve ardından Gerçek zamanlı uç noktaya dağıt'ı seçin.

    Dağıt seçeneğini seçtikten sonra Dağıtım sayfasının nasıl göründüğüne ilişkin ekran görüntüsü. .

    Gözden geçirme sayfanız böyle görünür. Örnek türünü, örnek sayısını seçebilir ve geçerli dağıtım için trafik yüzdesini ayarlayabilirsiniz.

    Dağıtılacak seçenekleri seçtikten sonra gözden geçirme sayfasının üst kısmının nasıl göründüğüne ilişkin ekran görüntüsü. . Dağıtılacak seçenekleri seçtikten sonra gözden geçirme sayfasının alt kısmının nasıl göründüğüne ilişkin ekran görüntüsü. .

    Çıkarım ayarlarını güncelleştirme

    Önceki adımda en iyi modelden mlflow-model/artifacts/settings.json dosyasını indirdiniz. Modeli kaydetmeden önce çıkarım ayarlarını güncelleştirmek için bu dosyayı kullanın. En iyi performans için eğitimle aynı parametreleri kullanın.

    Her görevin (ve bazı modellerin) bir dizi parametresi vardır. Varsayılan olarak, eğitim ve doğrulama sırasında parametreler için aynı değerler kullanılır. Modeli çıkarım için kullanırken ihtiyacınız olan davranışa bağlı olarak, bu parametreleri değiştirebilirsiniz. Aşağıdaki listede her görev türü ve modeli için parametreler gösterilir.

    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
    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
    Nesne algılama kullanarak 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
    Yanlış
    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öşemeyi 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 bkz. AutoML kullanarak küçük bir nesne algılama modelini eğitme.

    Dağıtımı test et

    Dağıtımı test etmek ve modelden algılamaları görselleştirmek için bkz. Dağıtımı test etme.

    Tahminler için açıklamalar oluşturma

    Önemli

    Bu ayarlar şu anda genel önizleme aşamasındadır. Hizmet düzeyi sözleşmesi olmadan sağlanırlar. 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ı.

    Uyarı

    Model Açıklanabilirliği yalnızca çok sınıflı sınıflandırmayı ve çok etiketli sınıflandırmayı destekler.

    Görüntüler için AutoML ile Açıklanabilir Yapay Zeka (XAI) kullanmanın bazı avantajları şunlardır:

    • Karmaşık görüntü işleme modeli tahminlerinde gelişmiş saydamlık
    • Kullanıcıların giriş görüntüsündeki model tahminlerine katkıda bulunan önemli özellikleri veya pikselleri anlamasına yardımcı olur
    • Modellerin sorunlarını gidermeye yardımcı olur
    • Yanlılık keşfetmeye yardımcı olur

    Açıklama

    Açıklamalar, modelin tahminine katkısını temel alarak giriş görüntüsündeki her piksele verdiğiniz özellik öznitelikleri veya ağırlıklardır. Her ağırlık negatif (tahminle negatif bağıntılı) veya pozitif (tahminle pozitif bağıntılı) olabilir. Bu atıfları öngörülen sınıfa karşı hesaplarsınız. Çok sınıflı sınıflandırma için örnek başına tam olarak bir ilişkilendirme [3, valid_crop_size, valid_crop_size] matrisi oluşturursunuz. Çok etiketli sınıflandırma için, her örnek için tahmin edilen her etiket veya sınıf için bir ilişkilendirme matrisi oluşturursunuz.

    Dağıtılan uç noktadaki Görüntüler için AutoML'de Açıklanabilir Yapay Zeka'yı kullanarak, her görüntü için açıklamaların görselleştirmelerini (giriş görüntüsü üzerinde yer alan atıflar) ve atıfların (çok boyutlu [3, valid_crop_size, valid_crop_size] dizisi) alabilirsiniz. Görselleştirmelerin dışında, atıfları kullanarak özel görselleştirmeler oluşturma veya ilişkilendirme segmentlerini inceleme gibi açıklamalar üzerinde daha fazla denetim elde etmek için ilişkilendirme matrisleri de alabilirsiniz. Tüm açıklama algoritmaları, ilişkilendirme oluşturmak için boyutu valid_crop_size kırpılmış kare görüntüleri kullanır.

    Çevrimiçi uç noktadan veya toplu iş uç noktasından açıklamalar oluşturabilirsiniz. Uç noktayı dağıttığınızda, tahminlerin açıklamalarını oluşturmak için kullanabilirsiniz. Çevrimiçi dağıtımlarda, açıklama oluştururken request_settings = OnlineRequestSettings(request_timeout_ms=90000) önlemek için parametresini ManagedOnlineDeployment öğesine geçirip request_timeout_ms en yüksek değerine ayarladığınızdan emin olun (model kaydetme ve dağıtma bölümüne bakın). gibi xraiaçıklanabilirlik (XAI) yöntemlerinden bazıları, özellikle çok etiketli sınıflandırma için daha fazla zaman tüketir çünkü tahmin edilen her etiket için öznitelikler ve görselleştirmeler oluşturmanız gerekir. Daha hızlı açıklamalar için herhangi bir GPU örneğini kullanın. Açıklama oluşturmaya yönelik giriş ve çıkış şeması hakkında daha fazla bilgi için şema belgelerine bakın.

    Görüntüler için AutoML, aşağıdaki en son teknoloji gelişmiş açıklanabilirlik algoritmalarını destekler.

    Aşağıdaki tabloda XRAI ve Tümleşik Gradyanlar için açıklanabilirlik algoritmasına özgü ayarlama parametreleri açıklanmaktadır. Kılavuzlu geri yayılım ve kılavuzlu Grad-CAM için herhangi bir ayarlama parametresi gerekmez.

    XAI algoritması Algoritmaya özgü parametreler Varsayılan Değerler
    xrai 1. n_steps: Yaklaşık oluşturma yöntemi tarafından kullanılan adım sayısı. Daha fazla sayıda adım, atıfların (açıklamalar) daha iyi tahmin edilmesine yol açar. n_steps aralığı [2, inf) ancak 50 adımdan sonra ilişkilendirmelerin performansı yakınsanmaya başlar.
    Optional, Int

    2. xrai_fast: XRAI'nin daha hızlı sürümünün kullanılıp kullanılmaymayacağı. ise True, açıklamalar için hesaplama süresi daha hızlıdır ancak daha az doğru açıklamaya (atıflar) yol açar
    Optional, Bool
    n_steps = 50
    xrai_fast = True
    integrated_gradients 1. n_steps: Yaklaşık oluşturma yöntemi tarafından kullanılan adım sayısı. Daha fazla sayıda adım, daha iyi atıflara (açıklamalar) yol açar. n_steps aralığı [2, inf) ancak 50 adımdan sonra ilişkilendirmelerin performansı yakınsanmaya başlar.
    Optional, Int

    2. approximation_method: İntegrali yaklaşık olarak belirleme yöntemi. Kullanılabilir yaklaşık yöntemler riemann_middle ve gausslegendre.
    Optional, String
    n_steps = 50
    approximation_method = riemann_middle

    XRAI algoritması dahili olarak tümleşik gradyanları kullanır. Bu nedenle hem tümleşik gradyanlar hem de XRAI algoritmaları parametresini n_steps gerektirir. Daha fazla sayıda adım açıklamaları tahmin etmek için daha fazla zaman tüketir ve çevrimiçi uç noktada zaman aşımı sorunlarına neden olabilir.

    Daha iyi açıklamalar için XRAI > Destekli GradCAM > Tümleşik Gradyanlar > Destekli Geri Yayılım algoritmalarını kullanın. Daha hızlı açıklamalar için Kılavuzlu BackPropagation > Destekli GradCAM > Tümleşik Gradyanları > XRAI'yi belirtilen sırada kullanın.

    Çevrimiçi uç noktaya örnek bir istek aşağıdaki gibi görünür. model_explainability True olarak ayarlandığında bu istek açıklamalar oluşturur. Aşağıdaki istek, 50 adımla XRAI algoritmasının daha hızlı sürümünü kullanarak görselleştirmeler ve atıflar oluşturur.

    import base64
    import json
    
    def read_image(image_path):
        with open(image_path, "rb") as f:
            return f.read()
    
    sample_image = "./test_image.jpg"
    
    # Define explainability (XAI) parameters
    model_explainability = True
    xai_parameters = {"xai_algorithm": "xrai",
                      "n_steps": 50,
                      "xrai_fast": True,
                      "visualizations": True,
                      "attributions": True}
    
    # Create request json
    request_json = {"input_data": {"columns":  ["image"],
                                   "data": [json.dumps({"image_base64": base64.encodebytes(read_image(sample_image)).decode("utf-8"),
                                                        "model_explainability": model_explainability,
                                                        "xai_parameters": xai_parameters})],
                                   }
                    }
    
    request_file_name = "sample_request_data.json"
    
    with open(request_file_name, "w") as request_file:
        json.dump(request_json, request_file)
    
    resp = ml_client.online_endpoints.invoke(
        endpoint_name=online_endpoint_name,
        deployment_name=deployment.name,
        request_file=request_file_name,
    )
    predictions = json.loads(resp)
    

    Açıklama oluşturma hakkında daha fazla bilgi için bkz . Otomatik makine öğrenmesi örnekleri için GitHub not defteri deposu.

    Görselleştirmeleri yorumlama

    Dağıtılan uç nokta, hem model_explainability hem de visualizationsTrue olarak ayarlandığında base64 kodlu bir görüntü dizesi döndürür. Base64 dizesinin kodunu not defterlerinde açıklandığı gibi çözebilirsiniz veya tahminde base64 görüntü dizelerinin kodunu çözmek ve görselleştirmek için aşağıdaki kodu kullanın.

    import base64
    from io import BytesIO
    from PIL import Image
    
    def base64_to_img(base64_img_str):
        base64_img = base64_img_str.encode("utf-8")
        decoded_img = base64.b64decode(base64_img)
        return BytesIO(decoded_img).getvalue()
    
    # For Multi-class classification:
    # Decode and visualize base64 image string for explanations for first input image
    # img_bytes = base64_to_img(predictions[0]["visualizations"])
    
    # For  Multi-label classification:
    # Decode and visualize base64 image string for explanations for first input image against one of the classes
    img_bytes = base64_to_img(predictions[0]["visualizations"][0])
    image = Image.open(BytesIO(img_bytes))
    

    Aşağıdaki resimde örnek giriş görüntüsü için açıklamaların görselleştirmesi gösterilmektedir. Resimler için AutoML için XAI tarafından oluşturulan görselleştirmelerin ekran görüntüsü.

    Çözülen base64 figürü, 2 x 2 kılavuz içinde dört görüntü bölümüne sahiptir.

    • Sol üst köşedeki görüntü (0, 0) kırpılan giriş görüntüsüdür.
    • Sağ üst köşedeki görüntü (0, 1), tahmin edilen sınıftaki beyaz piksellerin katkısının en yüksek, mavi piksellerin ise en düşük olduğu renk ölçeği bgyw (mavi yeşil sarı beyaz) üzerindeki ilişkilendirmelerin ısı haritasıdır.
    • Sol alt köşedeki görüntü (1, 0), kırpılan giriş görüntüsü üzerinde ilişkilendirmelerin karıştırılmış ısı haritasıdır.
    • Sağ alt köşedeki görüntü (1, 1), ilişkilendirme puanlarına göre piksellerin ilk yüzde 30'unu içeren kırpılmış giriş resmidir.

    Atıfları yorumlama

    Konfigüre edilmiş uç nokta, hem model_explainability hem de attributionsTrue olarak ayarlanmışsa ilişkilendirmeleri döndürür. Daha fazla ayrıntı için çok sınıflı sınıflandırma ve çok etiketli sınıflandırma not defterlerine bakın.

    Bu atıflar, kullanıcılara özel görselleştirmeler oluşturma veya piksel düzeyi ilişkilendirme puanlarını inceleme denetimi sağlar. Aşağıdaki kod parçacığı, ilişkilendirme matrisini kullanarak özel görselleştirmeler oluşturmanın bir yolunu açıklar. Çok sınıflı sınıflandırma ve çok etiketli sınıflandırma için ilişkilendirme şeması hakkında daha fazla bilgi için şema belgelerine bakın.

    Açıklamaları oluşturmak için seçilen modelin tam valid_resize_size ve valid_crop_size değerlerini kullanın (varsayılan değerler sırasıyla 256 ve 224'tür). Aşağıdaki kod, özel görselleştirmeler oluşturmak için Captum görselleştirme işlevini kullanır. Kullanıcılar görselleştirme oluşturmak için başka herhangi bir kitaplığı kullanabilir. Daha fazla ayrıntı için lütfen captum görselleştirme yardımcı programlarına bakın.

    import colorcet as cc
    import numpy as np
    from captum.attr import visualization as viz
    from PIL import Image
    from torchvision import transforms
    
    def get_common_valid_transforms(resize_to=256, crop_size=224):
    
        return transforms.Compose([
            transforms.Resize(resize_to),
            transforms.CenterCrop(crop_size)
        ])
    
    # Load the image
    valid_resize_size = 256
    valid_crop_size = 224
    sample_image = "./test_image.jpg"
    image = Image.open(sample_image)
    # Perform common validation transforms to get the image used to generate attributions
    common_transforms = get_common_valid_transforms(resize_to=valid_resize_size,
                                                    crop_size=valid_crop_size)
    input_tensor = common_transforms(image)
    
    # Convert output attributions to numpy array
    
    # For Multi-class classification:
    # Selecting attribution matrix for first input image
    # attributions = np.array(predictions[0]["attributions"])
    
    # For  Multi-label classification:
    # Selecting first attribution matrix against one of the classes for first input image
    attributions = np.array(predictions[0]["attributions"][0])
    
    # visualize results
    viz.visualize_image_attr_multiple(np.transpose(attributions, (1, 2, 0)),
                                      np.array(input_tensor),
                                      ["original_image", "blended_heat_map"],
                                      ["all", "absolute_value"],
                                      show_colorbar=True,
                                      cmap=cc.cm.bgyw,
                                      titles=["original_image", "heatmap"],
                                      fig_size=(12, 12))
    

    Büyük veri kümeleri

    Büyük veri kümelerinde eğitmek için AutoML kullanıyorsanız bazı deneysel ayarlar yararlı olabilir.

    Önemli

    Bu ayarlar şu anda genel önizleme aşamasındadır. Hizmet düzeyi sözleşmesi olmadan sağlanırlar. 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ı.

    Çoklu GPU ve çok düğümlü eğitim

    Varsayılan olarak, her model tek bir VM'de eğitilir. Modelin eğitimi çok fazla zaman alıyorsa, birden çok GPU içeren VM'lerin kullanılması yararlı olabilir. Modeli büyük veri kümelerinde eğitmek için gereken süre, kullanılan GPU sayısına göre kabaca doğrusal oranda azalır. Örneğin, model iki GPU'ya sahip bir VM'de, bir GPU'ya sahip bir VM'e göre yaklaşık iki kat daha hızlı eğitilir. Birden çok GPU'ya sahip bir VM'de modeli eğitmek için gereken süre hala yüksekse, her modeli eğitmek için kullanılan VM sayısını artırabilirsiniz. Çoklu GPU eğitimine benzer şekilde, modeli büyük veri kümelerinde eğitmek için gereken süre de kullanılan VM sayısına göre kabaca doğrusal oranda azalır. Bir modeli birden çok VM arasında eğitirken, en iyi sonuçlar için InfiniBand'i destekleyen bir işlem SKU'su kullandığınızdan emin olun. AutoML işinin özelliğini ayarlayarak node_count_per_trial tek bir modeli eğitmek için kullanılan VM sayısını yapılandırabilirsiniz.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    properties:
      node_count_per_trial: "2"
    

    Depolama alanından görüntü dosyalarını akışla aktarma

    Eğitim işlemi varsayılan olarak başlamadan önce tüm görüntü dosyalarını diske indirir. Görüntü dosyalarının boyutu kullanılabilir disk alanından büyükse, iş başarısız olur. Bu sorunu önlemek için eğitim sırasında Azure depolamadan görüntü dosyalarını akışla aktarma seçeneğini belirleyin. Eğitim işlemi, görüntü dosyalarını Azure depolamadan doğrudan sistem belleğine aktararak diski atlar. Aynı zamanda işlem, depolamaya yönelik istek sayısını en aza indirmek için diskteki depolama alanından mümkün olduğunca çok dosyayı önbelleğe alır.

    Not

    Akışı etkinleştirirseniz, maliyeti ve gecikme süresini en aza indirmek için Azure depolama hesabının işlem kaynağıyla aynı bölgede olduğundan emin olun.

    ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

    training_parameters:
      advanced_settings: >
        {"stream_image_files": true}
    

    Örnek not defterleri

    Ayrıntılı kod örnekleri ve kullanım örnekleri için otomatik makine öğrenmesi örnekleri için GitHub not defteri deposuna bakın. Görüntü işleme modelleri oluşturmaya özgü örnekler için klasörleri 'automl-image-' ön eki ile denetleyin.

    Kod örnekleri

    Ayrıntılı kod örnekleri ve kullanım örnekleri için otomatik makine öğrenmesi örnekleri için azureml-examples deposuna bakın.

    Sonraki adımlar