Az AutoML beállítása számítógépes látásmodellek Betanítása Pythonnal (v1)

ÉRVÉNYES:Python SDK azureml v1

Fontos

A cikkben szereplő Azure CLI-parancsok némelyike az azure-cli-mlAzure Machine Tanulás vagy v1 bővítményét használja. A v1-bővítmény támogatása 2025. szeptember 30-án megszűnik. Addig a dátumig telepítheti és használhatja a v1-bővítményt.

Javasoljuk, hogy 2025. szeptember 30-a előtt váltsa át a ml(vagy v2) bővítményt. További információ a v2-es bővítményről: Azure ML CLI-bővítmény és Python SDK v2.

Fontos

Ez a funkció jelenleg nyilvános előzetes verzióban érhető el. Ez az előzetes verzió szolgáltatásszintű szerződés nélkül érhető el. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik. További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

Ebből a cikkből megtudhatja, hogyan taníthat be számítógépes látásmodelleket képadatokon automatizált gépi tanulással az Azure Machine Tanulás Python SDK-ban.

Az automatizált gépi tanulás támogatja a modellbetanítást olyan számítógépes látástechnológiás feladatok esetében, mint a képbesorolás, objektumészlelés és a példányszegmentálás. Az AutoML-modellek számítógépes látástechnológiás feladatokhoz való létrehozása jelenleg az Azure Machine Learning Python SDK-n keresztül támogatott. Az eredményként kapott kísérletezési futtatások, modellek és kimenetek az Azure Machine Tanulás studio felhasználói felületén érhetők el. További információ az automatikus ml-ről a képadatok számítógépes látási feladataihoz.

Feljegyzés

A számítógépes látási feladatokhoz készült automatizált gépi tanulás csak az Azure Machine Tanulás Python SDK-val érhető el.

Előfeltételek

  • Egy Azure Machine Learning-munkaterület. A munkaterület létrehozásához lásd : Munkaterület-erőforrások létrehozása.

  • Az Azure Machine Tanulás Python SDK telepítve van. Az SDK telepítéséhez

    Feljegyzés

    Csak a Python 3.7 és 3.8 kompatibilis a számítógépes látási feladatok automatizált gépi tanulási támogatásával.

Válassza ki a feladattípust

A rendszerképekhez készült automatizált gépi tanulás a következő feladattípusokat támogatja:

Tevékenység típusa AutoMLImage konfigurációs szintaxis
képbesorolás ImageTask.IMAGE_CLASSIFICATION
képbesorolás többcímke ImageTask.IMAGE_CLASSIFICATION_MULTILABEL
képobjektum-észlelés ImageTask.IMAGE_OBJECT_DETECTION
képpéldány szegmentálása ImageTask.IMAGE_INSTANCE_SEGMENTATION

Ez a feladattípus kötelező paraméter, és a rendszer a paraméterrel adja át a taskAutoMLImageConfigkövetkezőben: .

Példa:

from azureml.train.automl import AutoMLImageConfig
from azureml.automl.core.shared.constants import ImageTask
automl_image_config = AutoMLImageConfig(task=ImageTask.IMAGE_OBJECT_DETECTION)

Betanítási és érvényesítési adatok

A számítógépes látásmodellek létrehozásához címkézett képadatokat kell bevinnie a modellbetanítás bemeneteként egy Azure Machine Tanulás TabularDataset formájában. Használhat egy TabularDatasetadatcímkéző projektből exportált projektet, vagy létrehozhat egy újat TabularDataset a címkézett betanítási adatokkal.

Ha a betanítási adatok más formátumban vannak (például pascal VOC vagy COCO), a mintajegyzetfüzetekben található segédszkriptekkel JSONL-vé alakíthatja az adatokat. További információ az adatok számítógépes látási feladatokhoz való előkészítéséről az automatizált gépi tanulással.

Figyelmeztetés

A TabularDatasets JSONL formátumú adatokból való létrehozását csak az SDK támogatja, ehhez a funkcióhoz. Az adathalmaz felhasználói felületen történő létrehozása jelenleg nem támogatott. A felhasználói felület egyelőre nem ismeri fel a StreamInfo adattípust, amely a JSONL formátumú kép URL-címekhez használt adattípus.

Feljegyzés

A betanítási adatkészletnek legalább 10 képre van szüksége ahhoz, hogy autoML-futtatásokat lehessen küldeni.

JSONL-sémaminták

A TabularDataset felépítése az adott feladattól függ. A computer vision tevékenységtípusok esetében a következő mezőkből áll:

Mező Leírás
image_url A FilePath-t StreamInfo-objektumként tartalmazza
image_details A kép metaadatai a magasságból, a szélességből és a formátumból állnak. Ez a mező nem kötelező, ezért előfordulhat, hogy nem létezik.
label A képcímke json-ábrázolása a feladat típusa alapján.

A képbesoroláshoz az alábbi minta JSONL-fájl található:

{
      "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"
  }

Az alábbi kód egy objektumészlelési JSONL-mintafájl:

{
    "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",
    }
}

Adatok felhasználása

Miután az adatok JSONL formátumban vannak, létrehozhat egy TabularDatasetet a következő kóddal:

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)

Az automatizált gépi tanulás nem ír elő semmilyen korlátozást a betanítási és ellenőrzési adatok méretére a számítógépes látási feladatok esetében. Az adathalmaz maximális méretét csak az adathalmaz mögötti tárolási réteg (pl. blobtároló) korlátozza. Nincs minimális számú kép vagy címke. Javasoljuk azonban, hogy címkénként legalább 10–15 mintát használjon, hogy a kimeneti modell megfelelően betanult legyen. Minél nagyobb a címkék/osztályok teljes száma, annál több mintára van szükség címkénként.

A betanítási adatok megadása kötelező, és a paraméter használatával kerül átadásra training_data . Opcionálisan megadhat egy másik TabularDatasetet érvényesítési adatkészletként, amelyet az AutoMLImageConfig paraméterrel validation_data használhat a modellhez. Ha nincs megadva érvényesítési adatkészlet, a betanítási adatok 20%-a alapértelmezés szerint az ellenőrzéshez lesz használva, hacsak nem ad át validation_size egy másik értékkel rendelkező argumentumot.

Példa:

from azureml.train.automl import AutoMLImageConfig
automl_image_config = AutoMLImageConfig(training_data=training_dataset)

Számítás a kísérlet futtatásához

Adjon meg egy számítási célt az automatizált gépi tanuláshoz a modell betanításának elvégzéséhez. A számítógépes látási feladatok automatizált ml-modelljei gpu-termékváltozatokat igényelnek, és támogatják az NC- és ND-családokat. A gyorsabb betanításhoz az NCsv3 sorozatot (v100 GPU-kkal) javasoljuk. A több GPU-s virtuálisgép-termékváltozattal rendelkező számítási cél több GPU-val is felgyorsítja a betanítást. Emellett ha több csomóponttal állít be számítási célt, akkor a modell hiperparamétereinek finomhangolása során a párhuzamosságon keresztül gyorsabban végezheti el a modell betanítását.

Feljegyzés

Ha számítási példányt használ számítási célként, győződjön meg arról, hogy több AutoML-feladat nem fut egyszerre. Győződjön meg arról is, hogy max_concurrent_iterations a kísérlet erőforrásaiban 1 érték van beállítva.

A számítási cél egy kötelező paraméter, és a rendszer a compute_targetAutoMLImageConfig. Példa:

from azureml.train.automl import AutoMLImageConfig
automl_image_config = AutoMLImageConfig(compute_target=compute_target)

Modell-algoritmusok és hiperparaméterek konfigurálása

A számítógépes látási feladatok támogatásával szabályozhatja a modellalgoritmust és a hiperparamétereket. Ezek a modell-algoritmusok és hiperparaméterek a takarítás paraméterterületeként kerülnek átadásra.

A modell algoritmusa kötelező, és paraméteren keresztül model_name kerül átadásra. Megadhat egyetlen model_name vagy több lehetőséget is.

Támogatott modell-algoritmusok

Az alábbi táblázat összefoglalja az egyes számítógépes látási feladatok támogatott modelljeit.

Feladatok Modell-algoritmusok Sztringkonstans szintaxisa
default_model* *-nal jelölve
Képbesorolás
(többosztályos és többcímkés)
MobileNet: Egyszerűsített modellek mobilalkalmazásokhoz
ResNet: Reziduális hálózatok
ResNeSt: Figyelési hálózatok felosztása
Standard kiadás-ResNeXt50: Kiszorítási és gerjesztési hálózatok
ViT: Vision transzformátor hálózatok
mobilenetv2
resnet18
resnet34
resnet50
resnet101
resnet152
resnest50
resnest101
seresnext
vits16r224 (kicsi)
vitb16r224* (alap)
vitl16r224 (nagy)
Objektumészlelés YOLOv5: Egyfázisú objektumészlelési modell
Gyorsabb RCNN ResNet FPN: Kétfázisú objektumészlelési modellek
RetinaNet ResNet FPN: az osztály kiegyensúlyozatlanságának kezelése a fókuszveszteséggel

Megjegyzés: A YOLOv5-modellméretekhez tekintse meg model_size a hiperparamétert .
yolov5*
fasterrcnn_resnet18_fpn
fasterrcnn_resnet34_fpn
fasterrcnn_resnet50_fpn
fasterrcnn_resnet101_fpn
fasterrcnn_resnet152_fpn
retinanet_resnet50_fpn
Példányszegmentálás MaskRCNN ResNet FPN maskrcnn_resnet18_fpn
maskrcnn_resnet34_fpn
maskrcnn_resnet50_fpn*
maskrcnn_resnet101_fpn
maskrcnn_resnet152_fpn
maskrcnn_resnet50_fpn

A modell algoritmusának vezérlése mellett a modell betanításához használt hiperparamétereket is hangolhatja. Bár a közzétett hiperparaméterek többsége modellfüggő, vannak olyan példányok, ahol a hiperparaméterek feladatspecifikusak vagy modellspecifikusak. További információ az ilyen példányokhoz elérhető hiperparaméterekről.

Adatnagyobbítás

A mélytanulási modell teljesítménye általában több adattal javítható. Az adatnagyobbítás gyakorlati módszer az adathalmazok adatméretének és variabilitásának felerősítésére, amely segít megelőzni a túlillesztést és javítani a modell általánosítási képességét a nem látott adatokon. Az automatizált gépi tanulás különböző adatnagyobbítási technikákat alkalmaz a számítógépes látási feladat alapján, mielőtt bemeneti képeket ad a modellhez. Jelenleg nincs közzétett hiperparaméter az adatnagyobbítások szabályozásához.

Feladatok Érintett adathalmaz Alkalmazott adatnagyobbítási technika(ok)
Képbesorolás (többosztályos és többcímke) Képzés


Ellenőrzés > teszt
Véletlenszerű átméretezés és körülvágás, vízszintes tükrözés, szín jitter (fényerő, kontraszt, telítettség és árnyalat), normalizálás csatorna-bölcs ImageNet középérték és szórás használatával


Átméretezés, körülvágás középre igazítása, normalizálás
Objektumészlelés, példányszegmentálás Képzés

Ellenőrzés > teszt
Véletlenszerű körülvágás a határolókeretek körül, kibontás, vízszintes tükrözés, normalizálás, átméretezés


Normalizálás, átméretezés
Objektumészlelés a yolov5 használatával Képzés

Ellenőrzés > teszt
Mozaik, véletlenszerű affine (forgatás, fordítás, skálázás, nyírás), vízszintes tükrözés


Postaláda átméretezése

A kísérlet beállításainak konfigurálása

Mielőtt nagy keresést végeznénk az optimális modellek és hiperparaméterek kereséséhez, javasoljuk, hogy próbálja ki az alapértelmezett értékeket az első alapkonfiguráció eléréséhez. A következő lépésben több hiperparamétert is megvizsgálhat ugyanahhoz a modellhez, mielőtt több modellt és azok paramétereit átsöprnénk. Ily módon iteratívabb megközelítést alkalmazhat, mivel több modell és több hiperparaméter esetén a keresési terület exponenciálisan növekszik, és több iterációra van szükség az optimális konfigurációk megtalálásához.

Ha egy adott algoritmushoz (például yolov5) az alapértelmezett hiperparaméter-értékeket szeretné használni, az AutoML-rendszerképek konfigurációját az alábbiak szerint adhatja meg:

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)

Miután létrehozott egy alapmodellt, érdemes optimalizálni a modell teljesítményét a modellalgoritmus és a hiperparaméter-terület átsöprése érdekében. Az alábbi mintakonfigurációval átsöpörheti az egyes algoritmusok hiperparamétereit, és kiválaszthat egy értéktartományt learning_rate, optimalizáló, lr_scheduler stb. számára, hogy létrehozhassa az optimális elsődleges metrikával rendelkező modellt. Ha nincs megadva hiperparaméter-érték, akkor a rendszer az alapértelmezett értékeket használja a megadott algoritmushoz.

Elsődleges metrika

A modelloptimalizáláshoz és a hiperparaméter finomhangolásához használt elsődleges metrika a tevékenység típusától függ. Az egyéb elsődleges metrikaértékek használata jelenleg nem támogatott.

  • accuracy IMAGE_CLASSIFICATION
  • iou IMAGE_CLASSIFICATION_MULTILABEL
  • mean_average_precision IMAGE_OBJECT_DETECTION
  • mean_average_precisionIMAGE_INSTANCE_Standard kiadás GMENTATION esetén

Kísérlet költségvetése

Opcionálisan megadhatja az AutoML Vision-kísérlet experiment_timeout_hours maximális időkeretét – a kísérlet befejeződése előtti órákban megadott időtartamot. Ha nincs megadva, a kísérlet alapértelmezett időtúllépése hét nap (legfeljebb 60 nap).

Hiperparaméterek takarítása a modellhez

A számítógépes látásmodellek betanításakor a modell teljesítménye nagymértékben függ a kiválasztott hiperparaméter-értékektől. Gyakran érdemes lehet a hiperparamétereket finomhangolni az optimális teljesítmény érdekében. Az automatizált gépi tanulásban a számítógépes látási feladatok támogatásával hiperparamétereket söpörhet le, hogy megtalálja a modell optimális beállításait. Ez a funkció az Azure Machine Tanulás hiperparaméter-finomhangolási képességeit alkalmazza. Megtudhatja, hogyan hangolhatja a hiperparamétereket.

A paraméter keresési helyének meghatározása

Meghatározhatja a modell algoritmusait és hiperparamétereit a paramétertérben való takarításhoz.

Mintavételi módszerek a takarításhoz

Hiperparaméterek seprésekor meg kell adnia a mintavételezési módszert, amelyet a megadott paraméterterületen való átsöpréshez használ. Jelenleg a következő mintavételezési módszerek támogatottak a hyperparameter_sampling paraméterrel:

Feljegyzés

Jelenleg csak a véletlenszerű és a rácsos mintavételezés támogatja a feltételes hiperparaméter-szóközöket.

Korai megszüntetési szabályzatok

Automatikusan befejezheti a rosszul teljesítő futtatásokat egy korai megszüntetési szabályzattal. A korai megszüntetés javítja a számítási hatékonyságot, így olyan számítási erőforrásokat takarít meg, amelyeket egyébként kevésbé ígéretes konfigurációkra fordítottak volna. A rendszerképekhez készült automatizált gépi tanulás a következő korai megszüntetési szabályzatokat támogatja a early_termination_policy paraméter használatával. Ha nincs megadva leállítási szabályzat, a rendszer az összes konfigurációt a befejezésig futtatja.

További információ a hiperparaméter-takarítás korai megszakítási szabályzatának konfigurálásáról.

Erőforrások a takarításhoz

A hiperparaméteres takarításra fordított erőforrásokat a takarítás és max_concurrent_iterations a iterations takarítás megadásával szabályozhatja.

Paraméter Részlet
iterations Kötelező paraméter a átvizsgálandó konfigurációk maximális számához. 1 és 1000 közötti egész számnak kell lennie. Ha csak az adott modell-algoritmus alapértelmezett hiperparamétereit vizsgálja meg, állítsa ezt a paramétert 1 értékre.
max_concurrent_iterations Egyidejűleg futtatható futtatások maximális száma. Ha nincs megadva, az összes futtatás párhuzamosan indul el. Ha meg van adva, 1 és 100 közötti egész számnak kell lennie.

MEGJEGYZÉS: Az egyidejű futtatások száma a megadott számítási célban elérhető erőforrásokon van meghatározva. Győződjön meg arról, hogy a számítási cél rendelkezik a kívánt egyidejűséghez elérhető erőforrásokkal.

Feljegyzés

A teljes takarítási konfigurációs mintaért tekintse meg ezt az oktatóanyagot.

Argumentumok

Olyan rögzített beállításokat vagy paramétereket adhat meg, amelyek nem változnak a paraméterterület-takarítás során argumentumként. Az argumentumok név-érték párokban vannak átadva, és a nevet két kötőjelnek kell előtaggal előtaggal elneveznie.

from azureml.train.automl import AutoMLImageConfig
arguments = ["--early_stopping", 1, "--evaluation_frequency", 2]
automl_image_config = AutoMLImageConfig(arguments=arguments)

Növekményes betanítás (nem kötelező)

A betanítási futtatás után lehetősége van a modell további betanítására a betanított modell ellenőrzőpontjának betöltésével. Használhatja ugyanazt az adatkészletet vagy egy másikat a növekményes betanításhoz.

A növekményes betanításhoz két lehetőség áll rendelkezésre. Képes vagy

  • Adja meg azt a futtatási azonosítót, amelyből be szeretné tölteni az ellenőrzőpontot.
  • Adja át az ellenőrzőpontokat egy FileDataseten keresztül.

Az ellenőrzőpont átadása futtatási azonosítón keresztül

A kívánt modell futtatási azonosítójának megkereséséhez használja az alábbi kódot.

# find a run id to get a model checkpoint from
target_checkpoint_run = automl_image_run.get_best_child()

Ha egy ellenőrzőpontot a futtatási azonosítón keresztül szeretne átadni, a paramétert checkpoint_run_id kell használnia.

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)

Az ellenőrzőpont átadása a FileDataseten keresztül

Az ellenőrzőpont FileDataseten keresztüli átadásához a paramétereket és checkpoint_filename a checkpoint_dataset_id paramétereket kell használnia.

# 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)

A futtatás elküldése

Ha elkészült az AutoMLImageConfig objektum, elküldheti a kísérletet.

ws = Workspace.from_config()
experiment = Experiment(ws, "Tutorial-automl-image-object-detection")
automl_image_run = experiment.submit(automl_image_config)

Kimenetek és kiértékelési metrikák

Az automatizált gépi tanulási futtatások kimeneti modellfájlokat, kiértékelési metrikákat, naplókat és üzembehelyezési összetevőket hoznak létre, például a pontozófájlt és a környezeti fájlt, amely a gyermekfuttatások kimenetei és naplói és metrikák lapján tekinthető meg.

Tipp.

Ellenőrizze, hogyan navigálhat a feladat eredményeihez a Futtatási eredmények megtekintése szakaszban.

Az egyes futtatásokhoz megadott teljesítménydiagramokra és metrikákra vonatkozó definíciókat és példákat lásd: Automatizált gépi tanulási kísérletek eredményeinek kiértékelése

Modell regisztrálása és üzembe helyezése

Miután a futtatás befejeződött, regisztrálhatja a legjobb futtatásból létrehozott modellt (olyan konfigurációt, amely a legjobb elsődleges metrikát eredményezte)

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')

A használni kívánt modell regisztrálása után üzembe helyezheti webszolgáltatásként az Azure Container Instances (ACI) vagy az Azure Kubernetes Service (AKS) szolgáltatásban. Az ACI tökéletes megoldás az üzemelő példányok tesztelésére, míg az AKS jobban megfelel a nagy léptékű, éles használatnak.

Ez a példa webszolgáltatásként helyezi üzembe a modellt az AKS-ben. Az AKS-ben való üzembe helyezéshez először hozzon létre egy AKS számítási fürtöt, vagy használjon egy meglévő AKS-fürtöt. Az üzembehelyezési fürthöz GPU-t vagy CPU-beli virtuálisgép-termékváltozatokat is használhat.


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)

Ezután megadhatja a következtetési konfigurációt, amely leírja, hogyan állíthatja be a modellt tartalmazó webszolgáltatást. A pontozási szkriptet és a környezetet a betanítási futtatásból használhatja a következtetési konfigurációban.

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)

Ezután üzembe helyezheti a modellt AKS-webszolgáltatásként.

# 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)

Másik lehetőségként üzembe helyezheti a modellt az Azure Machine Tanulás studio felhasználói felületén. Lépjen az automatizált gépi tanulási futtatás Modellek lapján üzembe helyezni kívánt modellre, és válassza az Üzembe helyezés lehetőséget.

Select model from the automl runs in studio UI

A modell központi telepítési végpontjának nevét és a következtetési fürtöt a modell üzembe helyezéséhez a Modell üzembe helyezése panelen konfigurálhatja.

Deploy configuration

Következtetéskonfiguráció frissítése

Az előző lépésben letöltöttük a pontozófájlt outputs/scoring_file_v_1_0_0.py a legjobb modellből egy helyi score.py fájlba, és egy objektum létrehozásához InferenceConfig használtuk. Ez a szkript módosítható úgy, hogy szükség esetén módosítsa a modellre vonatkozó következtetési beállításokat a letöltés után és a InferenceConfiglétrehozás előtt. Ez például az a kódszakasz, amely inicializálja a modellt a pontozófájlban:

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

Mindegyik feladat (és néhány modell) rendelkezik paraméterekkel a model_settings szótárban. Alapértelmezés szerint ugyanazokat az értékeket használjuk a betanítás és ellenőrzés során használt paraméterekhez. Attól függően, hogy milyen viselkedésre van szükség a modell következtetéséhez, módosíthatjuk ezeket a paramétereket. Az alábbiakban megtalálja az egyes tevékenységtípusokhoz és modellekhez tartozó paraméterek listáját.

Feladatok Paraméter neve Alapértelmezett
Képbesorolás (többosztályos és többcímke) valid_resize_size
valid_crop_size
256
224
Objektumészlelés min_size
max_size
box_score_thresh
nms_iou_thresh
box_detections_per_img
600
1333
0.3
0,5
100
Objektumészlelés a következő használatával: yolov5 img_size
model_size
box_score_thresh
nms_iou_thresh
640
közepes
0,1
0,5
Példányszegmentálás 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
Hamis
JPG

A feladatspecifikus hiperparaméterekkel kapcsolatos részletes leírásért tekintse meg az automatizált gépi tanulásban a számítógépes látási feladatok hyperparamétereit.

Ha burkolást szeretne használni, és szabályozni szeretné a burkolás viselkedését, a következő paraméterek érhetők el: tile_grid_sizeés tile_overlap_ratiotile_predictions_nms_thresh. Ezekről a paraméterekről további információt az AutoML használatával végzett kis objektumészlelési modell betanítása című témakörben talál.

Példajegyzetfüzetek

Tekintse át a részletes kódmintákat és használati eseteket az automatizált gépi tanulási minták GitHub-jegyzetfüzettárában. Ellenőrizze a mappák "image-" előtagját a számítógépes látásmodellek készítésére vonatkozó mintákhoz.

Következő lépések