Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
Python SDK azure-ai-ml v2 (geçerli)
Bu öğreticide, Azure Machine Learning CLI uzantısı v2 veya Azure Machine Learning Python SDK v2 ile Azure Machine Learning otomatik ML kullanarak nesne algılama modelini eğitmeyi öğreneceksiniz. Bu nesne algılama modeli, bir görüntünün kutu, karton, süt şişesi veya su şişesi gibi nesneler içerip içermediğini tanımlar.
Otomatik ML, eğitim verilerini ve yapılandırma ayarlarını kabul eder ve en iyi modele ulaşmak için farklı özellik normalleştirme/standartlaştırma yöntemleri, modelleri ve hiper parametre ayarlarının birleşimleri aracılığıyla otomatik olarak yinelenir.
Bu öğreticide Python SDK'sını kullanarak kod yazar ve aşağıdaki görevleri öğrenirsiniz:
- Verileri indirme ve dönüştürme
- Otomatik makine öğrenmesi nesne algılama modelini eğitin
- Modeliniz için hiper parametre değerlerini belirtme
- Hiper parametre taraması gerçekleştirme
- Modelinizi dağıtın
- Algılamaları görselleştirme
Önkoşullar
-
Azure Machine Learning'i kullanmak için bir çalışma alanı gerekir. Bir çalışma alanınız yoksa, bir çalışma alanı oluşturmak ve bunun nasıl kullanılacağı hakkında daha fazla bilgi edinmek için ihtiyacınız olan kaynakları Oluşturun'u tamamlayın.
Önemli
Azure Machine Learning çalışma alanınız yönetilen bir sanal ağ ile yapılandırılmışsa, genel Python paket depolarına erişime izin vermek için giden kuralları eklemeniz gerekebilir. Daha fazla bilgi için bkz . Senaryo: Genel makine öğrenmesi paketlerine erişme.
Python 3.10 veya üzerini kullanın.
Her
odFridgeObjectsgörüntünün bir XML dosyasına karşılık geldiği Pascal VOC biçiminde veri kümesine açıklama eklenir. Her XML dosyası, karşılık gelen görüntü dosyasının nerede olduğuna ilişkin bilgiler içerir ve ayrıca sınırlayıcı kutular ve nesne etiketleri hakkında bilgi içerir. Bu verileri kullanmak için önce automl-image-object-detection-task-buzdolabı-items.ipynb not defterinin İndirilen verileri JSONL'ye dönüştürme bölümünde gösterildiği gibi gerekli JSONL biçimine dönüştürmeniz gerekir.Ek bir yükleme yapmadan bu öğreticiyi tamamlamak için bir hesaplama birimi kullanın. (Bkz. İşlem örneği oluşturma.) Kendi yerel ortamınızı kullanmak için CLI veya SDK'sını da yükleyebilirsiniz.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)Bu öğretici, GitHub'daki azureml-examples deposunda da kullanılabilir. Yerel ortamınızda çalıştırmak istiyorsanız CLI'yı (v2) yükleyip ayarlayın ve uzantıyı yüklediğinizden
mlemin olun.
Hesaplama hedefi kurulumu
Not
Sunucusuz işlemi denemek için bu adımı atlayın ve Deneme kurulumu'na gidin.
Öncelikle otomatik ML modeli eğitiminiz için kullanılacak bir işlem hedefi ayarlamanız gerekir. Görüntü görevleri için otomatik ML modelleri GPU SKU'ları gerektirir.
Bu işlem hedefi türü eğitimi hızlandırmak için birden çok GPU kullandığından bu öğreticide NCsv3 serisi (V100 GPU'larla) kullanılır. Ayrıca, modeliniz için hiper parametreleri ayarlarken paralellikten yararlanmak için birden çok düğüm ayarlayabilirsiniz.
Aşağıdaki kod, Standard_NC64as_T4_v3 boyutlarında ve dört düğümlü bir GPU hesaplama birimi oluşturur.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
Aşağıdaki yapılandırmaya sahip bir .yml dosyası oluşturun.
$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json
name: gpu-cluster
type: amlcompute
size: Standard_NC64as_T4_v3
min_instances: 0
max_instances: 4
idle_time_before_scale_down: 120
İşlemi oluşturmak 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ırsınız.
az ml compute create -f [PATH_TO_YML_FILE] --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
Deneme kurulumu
Model eğitim işlerinizi izlemek için bir deney kullanabilirsiniz.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
Deneme adını şu anahtarı kullanarak experiment_name sağlayabilirsiniz:
experiment_name: dpv2-cli-automl-image-object-detection-experiment
Giriş verilerini görselleştirme
Giriş görüntüsü verilerini JSONL (JSON Çizgileri) biçiminde hazırladıktan sonra, bir görüntü için temel gerçeklik sınırlayıcı kutularını görselleştirebilirsiniz. Bunu yapmak için matplotlib yüklediğinizden emin olun.
%pip install --upgrade matplotlib
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import matplotlib.patches as patches
from PIL import Image as pil_image
import numpy as np
import json
import os
def plot_ground_truth_boxes(image_file, ground_truth_boxes):
# Display the image
plt.figure()
img_np = mpimg.imread(image_file)
img = pil_image.fromarray(img_np.astype("uint8"), "RGB")
img_w, img_h = img.size
fig,ax = plt.subplots(figsize=(12, 16))
ax.imshow(img_np)
ax.axis("off")
label_to_color_mapping = {}
for gt in ground_truth_boxes:
label = gt["label"]
xmin, ymin, xmax, ymax = gt["topX"], gt["topY"], gt["bottomX"], gt["bottomY"]
topleft_x, topleft_y = img_w * xmin, img_h * ymin
width, height = img_w * (xmax - xmin), img_h * (ymax - ymin)
if label in label_to_color_mapping:
color = label_to_color_mapping[label]
else:
# Generate a random color. If you want to use a specific color, you can use something like "red."
color = np.random.rand(3)
label_to_color_mapping[label] = color
# Display bounding box
rect = patches.Rectangle((topleft_x, topleft_y), width, height,
linewidth=2, edgecolor=color, facecolor="none")
ax.add_patch(rect)
# Display label
ax.text(topleft_x, topleft_y - 10, label, color=color, fontsize=20)
plt.show()
def plot_ground_truth_boxes_jsonl(image_file, jsonl_file):
image_base_name = os.path.basename(image_file)
ground_truth_data_found = False
with open(jsonl_file) as fp:
for line in fp.readlines():
line_json = json.loads(line)
filename = line_json["image_url"]
if image_base_name in filename:
ground_truth_data_found = True
plot_ground_truth_boxes(image_file, line_json["label"])
break
if not ground_truth_data_found:
print("Unable to find ground truth information for image: {}".format(image_file))
Herhangi bir görüntü için yukarıdaki yardımcı işlevleri kullanarak sınırlayıcı kutuları görüntülemek için aşağıdaki kodu çalıştırabilirsiniz.
image_file = "./odFridgeObjects/images/31.jpg"
jsonl_file = "./odFridgeObjects/train_annotations.jsonl"
plot_ground_truth_boxes_jsonl(image_file, jsonl_file)
Verileri yükleyin ve MLTable oluşturun
Eğitim için verileri kullanmak için, verileri Azure Machine Learning çalışma alanınızın varsayılan blob depolama alanına yükleyin ve varlık olarak kaydedin. Verileri kaydetmenin avantajları şunlardır:
- Ekibin diğer üyeleriyle kolayca paylaşabilirsiniz.
- Meta verilerin sürüm oluşturma (konum, açıklama vb.).
- Köken izleme.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
Aşağıdaki yapılandırmaya sahip bir .yml dosyası oluşturun.
$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: fridge-items-images-object-detection
description: Fridge-items images Object detection
path: ./data/odFridgeObjects
type: uri_folder
Görüntüleri veri varlığı olarak karşıya yüklemek 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 data create -f [PATH_TO_YML_FILE] --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
Sonraki adım, aşağıdaki örnekte gösterildiği gibi verilerinizden JSONL biçiminde bir MLTable oluşturmaktır. MLTable, verilerinizi eğitim için tüketilebilir bir nesneye paketler.
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
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
Aşağıdaki yapılandırma MLTable'dan eğitim ve doğrulama verileri oluşturur.
target_column_name: label
training_data:
path: data/training-mltable-folder
type: mltable
validation_data:
path: data/validation-mltable-folder
type: mltable
Nesne algılama denemenizi yapılandırma
Görüntüyle ilgili görevler için otomatik ML işlerini yapılandırmak için göreve özgü bir AutoML işi oluşturun.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
Not
Sunucusuz işlem kullanmak için satırını compute: azureml:gpu-cluster şu kodla değiştirin:
resources:
instance_type: Standard_NC64as_T4_v3
instance_count: 4
task: image_object_detection
primary_metric: mean_average_precision
compute: azureml:gpu-cluster
Görüntü görevleri için otomatik hiper parametre süpürme (AutoMode)
AutoML işinizde, en uygun modeli bulmak için otomatik bir hiper parametre taraması gerçekleştirebilirsiniz. (Bu işlev AutoMode olarak adlandırılır). Yalnızca deneme sayısını belirtirsiniz. Hiper parametre arama alanı, örnekleme yöntemi ve erken sonlandırma ilkesi gerekli değildir. Sistem, deneme sayısına göre süpürecek hiper parametre alanının bölgesini otomatik olarak belirler. 10 ile 20 arasında bir değer büyük olasılıkla birçok veri kümesinde iyi çalışır.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
limits:
max_trials: 10
max_concurrent_trials: 2
Daha sonra bir görüntü modelini eğitmek için işi gönderebilirsiniz.
Ş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ırsınız.
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]
Görüntü görevleri için el ile hiper parametre süpürme
AutoML işinizde, parametresini kullanarak model_name model mimarilerini belirtebilir ve ayarları yapılandırarak en uygun modeli bulmak için tanımlı bir arama alanı üzerinde hiper parametre taraması gerçekleştirebilirsiniz.
Bu örnekte, YOLOv5 ve FasterRCNN ResNet50 FPN ile, her ikisi de 80'den fazla etiket kategorisine sahip binlerce etiketli görüntü içeren büyük ölçekli bir nesne algılama, segmentasyon ve resim yazısı veri kümesi olan COCO üzerinde önceden eğitilen bir nesne algılama modeli eğitirsiniz.
En uygun modeli bulmak için tanımlı bir arama alanı üzerinde hiper parametre taraması gerçekleştirebilirsiniz.
İş sınırları
Sınır ayarlarında iş için timeout_minutes, max_trials ve max_concurrent_trials belirterek AutoML görüntü eğitim işinize harcanan kaynakları kontrol edebilirsiniz. Daha fazla bilgi için iş sınırları parametrelerinin açıklamasına bakı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
Aşağıdaki kod, YOLOv5, FasterRCNN ResNet50 FPN olarak tanımlanan her bir mimari için hiperparametre taramasına hazırlık olarak arama alanını tanımlar. AutoML'nin en uygun birincil metriği optimize edecek bir model oluşturması için aralarından seçim yapacağı learning_rate, optimizer, lr_scheduler vb. değerlerin aralığını arama uzayında belirtin. Hiper parametre değerleri belirtilmezse, her mimari için varsayılan değerler kullanılır.
Ayarlama ayarları için, örnekleme algoritmasını kullanarak bu parametre alanından örnekler seçmek için rastgele örnekleme kullanın random . Önceki kodda belirtilen iş sınırları, otomatik ML'yi bu farklı örneklerle toplam 10 denemeyi deneyecek şekilde yapılandırarak işlem hedefinde aynı anda iki deneme çalıştırır ve bu da dört düğüm kullanılarak ayarlanır. Arama alanında ne kadar çok parametre varsa, en uygun modelleri bulmak için o kadar fazla deneme gerekir.
Bandit erken sonlandırma politikası da kullanılır. Bu ilke, düşük performanslı denemeleri sonlandırır. %20'lik bir esneklik payının dışında kalan ve en iyi performansı gösteren denemeler. Bu sonlandırma, kullanım kaynaklarından önemli ölçüde tasarruf sağlar.
Ş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
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]
Arama alanı ve süpürme ayarlarını tanımladıktan sonra, eğitim veri kümenizi kullanarak bir görüntü modelini eğitmek için işi gönderebilirsiniz.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
AutoML işinizi göndermek için, .yml dosyanızın yolu, çalışma alanı adı, kaynak grubu ve abonelik kimliği ile 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]
Hiper parametre taraması yaptığınızda, Hyperdrive kullanıcı arabirimi kullanılarak denenen farklı denemeleri görselleştirmek yararlı olabilir. Bu kullanıcı arabirimine ulaşmak için, Hyperdrive ana işi olan daha önce belirtilen AutoML ana görüntü işinin kullanıcı arabirimindeki Alt işler sekmesine gidebilirsiniz. Daha sonra bunun Alt işler sekmesine gidebilirsiniz.
Alternatif olarak, burada Hyperdrive ana görevini doğrudan görebilir ve Alt görevler sekmesine gidebilirsiniz.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
CLI example not available. Use the the Python SDK.
Modeli kaydetme ve dağıtma
İş tamamlandıktan sonra, en iyi deneme sürümünden (en iyi birincil ölçümle sonuçlanan yapılandırma) oluşturulan modeli kaydedebilirsiniz. İndirdikten sonra modeli kaydedebilir veya ilgili azureml ile jobid yolunu belirtebilirsiniz.
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. Use the Python SDK.
Modeli kaydedin
Modeli, azureml yolunu ya da yerel olarak indirdiğiniz yolu kullanarak 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]
Kullanmak istediğiniz modeli kaydettikten sonra yönetilen çevrimiçi uç noktayı 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
Daha önce oluşturduğunuz MLClient'ü kullanarak artık çalışma alanında bir uç noktası oluşturacaksınız. 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]
Büyük hacimli verilerde toplu çıkarım yapmak için ayrıca bir toplu çıkarım uç noktası oluşturabilirsiniz. Toplu işlem uç noktasını kullanarak toplu çıkarım örneği görmek için nesne algılama toplu puanlama not defterine bakın.
Ç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. Aşağıdaki kod uç nokta için bir dağıtım oluşturur. Dağıtım kümeniz için GPU veya CPU VM SKU'larını 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 kullanarak dağıtımı çalışma alanında oluşturacaksınız. 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. Geçerli dağıtımın alması gereken trafik yüzdesini ayarlayabilirsiniz. Bir uç noktaya sahip tüm dağıtımların trafik yüzdelerinin toplamı 100%'ı aşmamalıdır.
Ş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]
Dağıtımı test et
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
CLI example not available. Use the Python SDK.
Algılamaları görselleştirme
Artık bir test görüntüsünü puanladığınıza göre, resmin sınırlayıcı kutularını görselleştirebilirsiniz. Bunu yapmak için Matplotlib'in yüklü olması gerekir.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
CLI example not available. Use the Python SDK.
Kaynakları temizleme
Diğer Azure Machine Learning öğreticilerini tamamlamayı planlıyorsanız bu bölümü tamamlamayın.
Oluşturduğunuz kaynakları kullanmayı planlamıyorsanız, ücret ödememek için bunları silin.
- Azure portalında sol bölmedeki Kaynak grupları'nı seçin.
- Kaynak grupları listesinde, oluşturduğunuz kaynak grubunu seçin.
- Kaynak grubunu sil'i seçin.
- Kaynak grubu adını girin. Ardından Sil'i seçin.
Ayrıca kaynak grubunu koruyabilir, ancak tek bir çalışma alanını silebilirsiniz. Çalışma alanı sayfasına gidin ve Sil'i seçin.
Sonraki adımlar
Bu otomatik makine öğrenmesi öğreticisinde aşağıdaki görevleri tamamladınız:
- Çalışma alanı yapılandırıldı ve deneme için veriler hazırlandı
- Otomatik nesne algılama modeli eğitildi
- Modeliniz için belirtilen hiper parametre değerleri
- Hiper parametre taraması gerçekleştirildi
- Modelinizi dağıttınız
- Görselleştirilmiş algılamalar
Otomatik ML'de görüntü işleme hakkında daha fazla bilgi edinin.
Python kullanarak görüntü işleme modellerini eğitmek için AutoML'yi ayarlamayı öğrenin.
Bilgisayarla görü modellerinde artımlı eğitimi yapılandırmayı öğrenin.
Görüntü işleme görevleri için hangi hiper parametrelerin kullanılabilir olduğunu görün.
Kod örneklerini görüntüleme:
ŞUNLAR IÇIN GEÇERLIDIR:
Azure CLI ml uzantısı v2 (geçerli)
Not
Buzdolabı nesneleri veri kümesinin kullanımı, MIT Lisansı altındaki lisans aracılığıyla kullanılabilir.